package constants;

import client.MapleCharacter;
import client.MapleClient;
import client.PlayerStats;
import client.Skill;
import client.SkillFactory;
import client.inventory.MapleInventoryType;
import client.inventory.MapleWeaponType;
import client.status.MonsterStatus;
import java.awt.Point;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.apache.mina.core.session.IoSession;
import server.MapleItemInformationProvider;
import server.MapleStatEffect;
import server.RandomRewards;
import server.Randomizer;
import server.ServerProperties;
import server.maps.MapleMapObjectType;
import tools.FileoutputUtil;
import tools.MaplePacketCreator;

public class GameConstants {

    public static boolean GMS = false;
    public static final List<MapleMapObjectType> rangedMapobjectTypes = Collections.unmodifiableList(Arrays.asList(new MapleMapObjectType[]{MapleMapObjectType.ITEM, MapleMapObjectType.MONSTER, MapleMapObjectType.DOOR, MapleMapObjectType.REACTOR, MapleMapObjectType.SUMMON, MapleMapObjectType.NPC, MapleMapObjectType.MIST, MapleMapObjectType.FAMILIAR, MapleMapObjectType.EXTRACTOR}));
    private static final long[] exp = {0L, 15L, 35L, 57L, 92L, 135L, 372L, 560L, 840L, 1242L, 1242L, 1242L, 1242L, 1242L, 1242L, 1490L, 1788L, 2146L, 2575L, 3090L, 3708L, 4450L, 5340L, 6408L, 7690L, 9228L, 11074L, 13289L, 15947L, 19136L, 19136L, 19136L, 19136L, 19136L, 19136L, 22963L, 27556L, 33067L, 39681L, 47616L, 51425L, 55539L, 59982L, 64781L, 69963L, 75560L, 81605L, 88133L, 95184L, 102799L, 111023L, 119905L, 129497L, 139857L, 151046L, 163129L, 176180L, 190274L, 205496L, 221936L, 239691L, 258866L, 279575L, 301941L, 326097L, 352184L, 380359L, 410788L, 443651L, 479143L, 479143L, 479143L, 479143L, 479143L, 479143L, 512683L, 548571L, 586971L, 628059L, 672024L, 719065L, 769400L, 823258L, 880886L, 942548L, 1008526L, 1079123L, 1154662L, 1235488L, 1321972L, 1414511L, 1513526L, 1619473L, 1732836L, 1854135L, 1983924L, 2122799L, 2271395L, 2430393L, 2600520L, 2782557L, 2977336L, 3185749L, 3408752L, 3647365L, 3902680L, 4175868L, 4468179L, 4780951L, 5115618L, 5473711L, 5856871L, 6266852L, 6705531L, 7174919L, 7677163L, 8214565L, 8789584L, 9404855L, 10063195L, 10063195L, 10063195L, 10063195L, 10063195L, 10063195L, 10767619L, 11521352L, 12327847L, 13190796L, 14114152L, 15102142L, 16159292L, 17290443L, 18500774L, 19795828L, 21181536L, 22664244L, 24250741L, 25948292L, 27764673L, 29708200L, 31787774L, 34012918L, 36393823L, 38941390L, 41667288L, 44583998L, 47704878L, 51044219L, 54617315L, 58440527L, 62531364L, 66908559L, 71592158L, 76603609L, 81965862L, 87703472L, 93842715L, 100411706L, 107440525L, 113895024L, 120728726L, 127972450L, 135650797L, 143789844L, 152417235L, 161562269L, 171256005L, 181531366L, 192423248L, 203968643L, 216206761L, 229179167L, 242929917L, 257505712L, 272956055L, 289333418L, 306693423L, 325095029L, 344600730L, 365276774L, 387193381L, 410424983L, 435050483L, 461153512L, 488822722L, 518152086L, 549241211L, 582195683L, 617127424L, 654155070L, 693404374L, 735008637L, 779109155L, 825855704L, 875407047L, 927931469L, 983607358L, 1042623799L, 1105181227L, 1171492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2071492101L, 2100000000L, 2200000000L, 2210000000L, 2222222222L, 3333333333L, 4444444444L, 5555555555L, 6666666666L, 7777777777L, 8888888888L, 9999999999L, 11111111111L, 22222222222L, 33333333333L, 44444444444L, 55555555555L, 66666666666L, 77777777777L, 88888888888L, 99999999999L, 111111111111L, 222222222222L, 333333333333L, 444444444444L, 555555555555L, 6666666666666L, 7777777777777L, 8888888888888L, 9999999999999L};
    private static final int[] closeness = {0, 1, 3, 6, 14, 31, 60, 108, 181, 287, 434, 632, 891, 1224, 1642, 2161, 2793, 3557, 4467, 5542, 6801, 8263, 9950, 11882, 14084, 16578, 19391, 22547, 26074, 30000};
    private static final int[] setScore = {0, 10, 100, 300, 600, 1000, 2000, 4000, 7000, 10000};
    private static final int[] cumulativeTraitExp = {0, 20, 46, 80, 124, 181, 255, 351, 476, 639, 851, 1084, 1340, 1622, 1932, 2273, 2648, 3061, 3515, 4014, 4563, 5128, 5710, 6309, 6926, 7562, 8217, 8892, 9587, 10303, 11040, 11788, 12547, 13307, 14089, 14883, 15689, 16507, 17337, 18179, 19034, 19902, 20783, 21677, 22584, 23505, 24440, 25399, 26362, 27339, 28331, 29338, 30360, 31397, 32450, 33519, 34604, 35705, 36823, 37958, 39110, 40279, 41466, 32671, 43894, 45135, 46395, 47674, 48972, 50289, 51626, 52967, 54312, 55661, 57014, 58371, 59732, 61097, 62466, 63839, 65216, 66597, 67982, 69371, 70764, 72161, 73562, 74967, 76376, 77789, 79206, 80627, 82052, 83481, 84914, 86351, 87792, 89237, 90686, 92139, 93596, 96000};
    private static final int[] mobHpVal = {0, 15, 20, 25, 35, 50, 65, 80, 95, 110, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 405, 435, 465, 495, 525, 580, 650, 720, 790, 900, 990, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2520, 2640, 2760, 2880, 3000, 3200, 3400, 3600, 3800, 4000, 4300, 4600, 4900, 5200, 5500, 5900, 6300, 6700, 7100, 7500, 8000, 8500, 9000, 9500, 10000, 11000, 12000, 13000, 14000, 15000, 17000, 19000, 21000, 23000, 25000, 27000, 29000, 31000, 33000, 35000, 37000, 39000, 41000, 43000, 45000, 47000, 49000, 51000, 53000, 55000, 57000, 59000, 61000, 63000, 65000, 67000, 69000, 71000, 73000, 75000, 77000, 79000, 81000, 83000, 85000, 89000, 91000, 93000, 95000, 97000, 99000, 101000, 103000, 105000, 107000, 109000, 111000, 113000, 115000, 118000, 120000, 125000, 130000, 135000, 140000, 145000, 150000, 155000, 160000, 165000, 170000, 175000, 180000, 185000, 190000, 195000, 200000, 205000, 210000, 215000, 220000, 225000, 230000, 235000, 240000, 250000, 260000, 270000, 280000, 290000, 300000, 310000, 320000, 330000, 340000, 350000, 360000, 370000, 380000, 390000, 400000, 410000, 420000, 430000, 440000, 450000, 460000, 470000, 480000, 490000, 500000, 510000, 520000, 530000, 550000, 570000, 590000, 610000, 630000, 650000, 670000, 690000, 710000, 730000, 750000, 770000, 790000, 810000, 830000, 850000, 870000, 890000, 910000};
    private static final int[] pvpExp = {0, 3000, 6000, 12000, 24000, 48000, 960000, 192000, 384000, 768000};
    private static final int[] guildExp = {0, 20000, 160000, 540000, 1280000, 2500000, 4320000, 6860000, 10240000, 14580000};
    private static final int[] mountExp = {0, 6, 25, 50, 105, 134, 196, 254, 263, 315, 367, 430, 543, 587, 679, 725, 897, 1146, 1394, 1701, 2247, 2543, 2898, 3156, 3313, 3584, 3923, 4150, 4305, 4550};
    private static final int[] professionExp = {0, 250, 600, 1050, 1600, 2250, 3000, 3850, 4900, 5850};
    public static final int[] itemBlock = {2430112, 4001168, 3993003, 2340000, 2049100, 4001129, 2040727, 2040037, 2040006, 2040007, 2040303, 2040403, 2040506, 2040507, 2040603, 2040709, 2040710, 2040711, 2040806, 2040903, 2041024, 2041025, 2043003, 2043103, 2043203, 2043303, 2043703, 2043803, 2044003, 2044103, 2044203, 2044303, 2044403, 2044503, 2044603, 2044908, 2044815, 2044019, 2044703};
    public static final int[] cashBlock = {5040005, 5533002, 5062002, 5080001, 5080000, 5660000, 5660001, 5060003, 5500000, 5500001, 5500002, 5500003, 5500004, 5500005, 5500006, 5050000, 5075000, 5075001, 5075002, 1122121, 5450000, 5190005, 5152049, 5600000, 5600001, 5350003, 2300002, 2300003, 5330000, 5431000, 5431002, 5431003, 5431004, 5530013, 5222000, 5210000, 5072000, 5073000, 5074000, 5076000, 5077000, 5079001, 5079002, 5390000, 5390001, 5390002, 5390003, 5390004, 5390005, 5390006, 5390007, 5390008, 5390010, 5060003, 5190010, 5066000, 5067000, 5150064, 5750000, 5750001, 5750002, 5211087, 5211089, 5211090, 5211093, 5211094, 5211095, 1112810, 1112811, 4001431, 4001432, 4032605, 5360000, 5360014, 5360015, 5062102, 5530132, 5530133, 5530138, 5530139, 5030019, 5030020, 5060007, 5062100, 5063100, 5530111, 5530124, 5533000, 5064001, 5150062, 5150063, 5152066, 5530194, 5530195, 5530198, 5530199, 5530200, 5530201, 5530202, 5530203, 5533004, 5533006, 5533007, 5530248, 5530249, 5530250, 5062005, 5770000, 5771001, 5771002, 5771003, 5771004, 5773000, 5140000, 5140001, 5140002, 5140003, 5140004, 5140005};
    private static final int[] ryexp = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 5000};
    public static final int JAIL = 180000001;
    public static final int MAX_BUFFSTAT = 13;
    public static final int[] blockedSkills = {4341003};
    public static final String[] RESERVED = {"Rental", "Donor"};
    public static final String[] stats = {"tuc", "reqLevel", "reqJob", "reqSTR", "reqDEX", "reqINT", "reqLUK", "reqPOP", "cash", "cursed", "success", "setItemID", "equipTradeBlock", "durability", "randOption", "randStat", "masterLevel", "reqSkillLevel", "elemDefault", "incRMAS", "incRMAF", "incRMAI", "incRMAL", "canLevel", "skill", "charmEXP", "imdR", "bdR", "limitBreak", "bossReward", "tuc"};
    public static final int[] hyperTele = {310000000, 220000000, 100000000, 250000000, 240000000, 104000000, 103000000, 102000000, 101000000, 120000000, 260000000, 200000000, 230000000};
    public static final int[] goldrewards = {2049400, 1, 2049401, 2, 2049301, 2, 2340000, 1, 2070007, 2, 2070016, 1, 2330007, 1, 1402037, 1, 2290096, 1, 2290049, 1, 2290041, 1, 2290047, 1, 2290095, 1, 2290017, 1, 2290075, 1, 2290085, 1, 2290116, 1, 1302059, 3, 2049100, 1, 1092049, 1, 1102041, 1, 1432018, 3, 1022047, 3, 3010051, 1, 3010020, 1, 2040914, 1, 1432011, 3, 1442020, 3, 1382035, 3, 1372010, 3, 1332027, 3, 1302056, 3, 1402005, 3, 1472053, 3, 1462018, 3, 1452017, 3, 1422013, 3, 1322029, 3, 1412010, 3, 1472051, 1, 1482013, 1, 1492013, 1, 1382049, 1, 1382050, 1, 1382051, 1, 1382052, 1, 1382045, 1, 1382046, 1, 1382047, 1, 1382048, 1, 1372035, 1, 1372036, 1, 1372037, 1, 1372038, 1, 1372039, 1, 1372040, 1, 1372041, 1, 1372042, 1, 1332032, 8, 1482025, 7, 4001011, 8, 4001010, 8, 4001009, 8, 2047000, 1, 2047001, 1, 2047002, 1, 2047100, 1, 2047101, 1, 2047102, 1, 2047200, 1, 2047201, 1, 2047202, 1, 2047203, 1, 2047204, 1, 2047205, 1, 2047206, 1, 2047207, 1, 2047208, 1, 2047300, 1, 2047301, 1, 2047302, 1, 2047303, 1, 2047304, 1, 2047305, 1, 2047306, 1, 2047307, 1, 2047308, 1, 2047309, 1, 2046004, 1, 2046005, 1, 2046104, 1, 2046105, 1, 2046208, 1, 2046209, 1, 2046210, 1, 2046211, 1, 2046212, 1, 1002801, 2, 1102205, 2, 1402046, 2, 1402047, 2, 1462054, 2, 1462055, 2, 1472074, 2, 1332077, 1, 1402049, 1, 1462053, 1, 1472072, 1, 1492047, 1, 1032080, 20, 1032081, 15, 1032082, 10, 1032083, 5, 1032084, 1, 1112435, 20, 1112436, 15, 1112437, 10, 1112438, 5, 1112439, 1, 1122081, 20, 1122082, 15, 1122083, 10, 1122084, 5, 1122085, 1, 1132036, 20, 1132037, 15, 1132038, 10, 1132039, 5, 1132040, 1, 1092070, 40, 1092071, 30, 1092072, 20, 1092073, 10, 1092074, 1, 1092075, 40, 1092076, 30, 1092077, 20, 1092078, 10, 1092079, 1, 1092080, 40, 1092081, 30, 1092082, 20, 1092083, 10, 1092084, 1, 1092087, 1, 1092088, 1, 1302143, 40, 1302144, 30, 1302145, 20, 1302146, 10, 1302147, 1, 1312058, 40, 1312059, 30, 1312060, 20, 1312061, 10, 1312062, 1, 1322086, 40, 1322087, 30, 1322088, 20, 1322089, 10, 1322090, 1, 1332116, 40, 1332117, 30, 1332118, 20, 1332119, 10, 1332120, 1, 1332121, 40, 1332122, 30, 1332123, 20, 1332124, 10, 1332125, 1, 1342029, 40, 1342030, 30, 1342031, 20, 1342032, 10, 1342033, 1, 1372074, 40, 1372075, 30, 1372076, 20, 1372077, 10, 1372078, 1, 1382095, 40, 1382096, 30, 1382097, 20, 1382098, 10, 1392099, 1, 1402086, 40, 1402087, 30, 1402088, 20, 1402089, 10, 1402090, 1, 1412058, 40, 1412059, 30, 1412060, 20, 1412061, 10, 1412062, 1, 1422059, 40, 1422060, 30, 1422061, 20, 1422062, 10, 1422063, 1, 1432077, 40, 1432078, 30, 1432079, 20, 1432080, 10, 1432081, 1, 1442107, 40, 1442108, 30, 1442109, 20, 1442110, 10, 1442111, 1, 1452102, 40, 1452103, 30, 1452104, 20, 1452105, 10, 1452106, 1, 1462087, 40, 1462088, 30, 1462089, 20, 1462090, 10, 1462091, 1, 1472113, 40, 1472114, 30, 1472115, 20, 1472116, 10, 1472117, 1, 1482075, 40, 1482076, 30, 1482077, 20, 1482078, 10, 1482079, 1, 1492075, 40, 1492076, 30, 1492077, 20, 1492078, 10, 1492079, 1, 1132012, 2, 1132013, 1, 1032031, 1, 1102172, 1, 1002776, 1, 1002777, 1, 1002778, 1, 1002779, 1, 1002780, 1, 1082234, 1, 1082235, 1, 1082236, 1, 1082237, 1, 1082238, 1, 1052155, 1, 1052156, 1, 1052157, 1, 1052158, 1, 1052159, 1, 1072355, 1, 1072356, 1, 1072357, 1, 1072358, 1, 1072359, 1, 1092057, 1, 1092058, 1, 1092059, 1, 1122012, 1, 1302081, 1, 1312037, 1, 1322060, 1, 1332073, 1, 1332074, 1, 1372044, 1, 1382057, 1, 1402046, 1, 1412033, 1, 1422037, 1, 1432047, 1, 1442063, 1, 1452057, 1, 1462050, 1, 1472068, 1, 1482023, 1, 1492023, 1, 1342011, 1, 1522015, 1, 1532015, 1, 1003280, 1, 1003281, 1, 1003282, 1, 1003283, 1, 1003284, 1, 1052374, 1, 1052375, 1, 1052376, 1, 1052377, 1, 1052378, 1, 1072544, 1, 1072545, 1, 1072546, 1, 1072547, 1, 1072548, 1, 1082328, 1, 1082329, 1, 1082330, 1, 1082331, 1, 1082332, 1, 1302173, 1, 1312072, 1, 1322107, 1, 1332148, 1, 1332149, 1, 1342040, 1, 1372100, 1, 1382124, 1, 1402111, 1, 1412071, 1, 1422073, 1, 1432099, 1, 1442136, 1, 1452129, 1, 1462118, 1, 1472141, 1, 1482102, 1, 1492101, 1, 1522020, 1, 1532037, 1, 1942004, 1, 1952004, 1, 1962004, 1, 1972004, 1, 2030008, 5, 1442018, 3, 2040900, 4, 2049100, 10, 2000005, 10, 2000004, 10, 2290285, 1, 2028061, 10, 4031456, 50, 4000313, 50, 4001126, 50, 2028062, 1, 2430370, 50, 2430144, 100, 2430455, 20, 2530000, 5, 5062000, 40, 5062002, 10, 5062001, 10, 5062005, 10};
    public static final int[] silverrewards = {2049401, 2, 2049301, 2, 3010041, 1, 1002452, 6, 1002455, 6, 2290084, 1, 2290048, 1, 2290040, 1, 2290046, 1, 2290074, 1, 2290064, 1, 2290094, 1, 2290022, 1, 2290056, 1, 2290066, 1, 2290020, 1, 1102082, 1, 1302049, 1, 1102041, 1, 1452019, 2, 4001116, 3, 4001012, 3, 1022060, 2, 2430144, 100, 2290285, 1, 4031456, 50, 4000313, 50, 4001126, 50, 2028062, 1, 2430370, 50, 2430455, 20, 2028061, 5, 2530000, 1, 2041100, 1, 2041101, 1, 2041102, 1, 2041103, 1, 2041104, 1, 2041105, 1, 2041106, 1, 2041107, 1, 2041108, 1, 2041109, 1, 2041110, 1, 2041111, 1, 2041112, 1, 2041113, 1, 2041114, 1, 2041115, 1, 2041116, 1, 2041117, 1, 2041118, 1, 2041119, 1, 2041300, 1, 2041301, 1, 2041302, 1, 2041303, 1, 2041304, 1, 2041305, 1, 2041306, 1, 2041307, 1, 2041308, 1, 2041309, 1, 2041310, 1, 2041311, 1, 2041312, 1, 2041313, 1, 2041314, 1, 2041315, 1, 2041316, 1, 2041317, 1, 2041318, 1, 2041319, 1, 2049200, 1, 2049201, 1, 2049202, 1, 2049203, 1, 2049204, 1, 2049205, 1, 2049206, 1, 2049207, 1, 2049208, 1, 2049209, 1, 2049210, 1, 2049211, 1, 1432011, 3, 1442020, 3, 1382035, 3, 1372010, 3, 1332027, 3, 1302056, 3, 1402005, 3, 1472053, 3, 1462018, 3, 1452017, 3, 1422013, 3, 1322029, 3, 1412010, 3, 1032080, 20, 1032081, 15, 1032082, 10, 1032083, 5, 1032084, 1, 1112435, 20, 1112436, 15, 1112437, 10, 1112438, 5, 1112439, 1, 1122081, 20, 1122082, 15, 1122083, 10, 1122084, 5, 1122085, 1, 1132036, 20, 1132037, 15, 1132038, 10, 1132039, 5, 1132040, 1, 1092070, 40, 1092071, 30, 1092072, 20, 1092073, 10, 1092074, 1, 1092075, 40, 1092076, 30, 1092077, 20, 1092078, 10, 1092079, 1, 1092080, 40, 1092081, 30, 1092082, 20, 1092083, 10, 1092084, 1, 1092087, 1, 1092088, 1, 1302143, 40, 1302144, 30, 1302145, 20, 1302146, 10, 1302147, 1, 1312058, 40, 1312059, 30, 1312060, 20, 1312061, 10, 1312062, 1, 1322086, 40, 1322087, 30, 1322088, 20, 1322089, 10, 1322090, 1, 1332116, 40, 1332117, 30, 1332118, 20, 1332119, 10, 1332120, 1, 1332121, 40, 1332122, 30, 1332123, 20, 1332124, 10, 1332125, 1, 1342029, 40, 1342030, 30, 1342031, 20, 1342032, 10, 1342033, 1, 1372074, 40, 1372075, 30, 1372076, 20, 1372077, 10, 1372078, 1, 1382095, 40, 1382096, 30, 1382097, 20, 1382098, 10, 1392099, 1, 1402086, 40, 1402087, 30, 1402088, 20, 1402089, 10, 1402090, 1, 1412058, 40, 1412059, 30, 1412060, 20, 1412061, 10, 1412062, 1, 1422059, 40, 1422060, 30, 1422061, 20, 1422062, 10, 1422063, 1, 1432077, 40, 1432078, 30, 1432079, 20, 1432080, 10, 1432081, 1, 1442107, 40, 1442108, 30, 1442109, 20, 1442110, 10, 1442111, 1, 1452102, 40, 1452103, 30, 1452104, 20, 1452105, 10, 1452106, 1, 1462087, 40, 1462088, 30, 1462089, 20, 1462090, 10, 1462091, 1, 1472113, 40, 1472114, 30, 1472115, 20, 1472116, 10, 1472117, 1, 1482075, 40, 1482076, 30, 1482077, 20, 1482078, 10, 1482079, 1, 1492075, 40, 1492076, 30, 1492077, 20, 1492078, 10, 1492079, 1, 1132012, 2, 1132013, 1, 1002790, 1, 1002791, 1, 1002792, 1, 1002793, 1, 1002794, 1, 1082239, 1, 1082240, 1, 1082241, 1, 1082242, 1, 1082243, 1, 1052160, 1, 1052161, 1, 1052162, 1, 1052163, 1, 1052164, 1, 1072361, 1, 1072362, 1, 1072363, 1, 1072364, 1, 1072365, 1, 1302086, 1, 1312038, 1, 1322061, 1, 1332075, 1, 1332076, 1, 1372045, 1, 1382059, 1, 1402047, 1, 1412034, 1, 1422038, 1, 1432049, 1, 1442067, 1, 1452059, 1, 1462051, 1, 1472071, 1, 1482024, 1, 1492025, 1, 1342012, 1, 1942002, 1, 1952002, 1, 1962002, 1, 1972002, 1, 1522016, 1, 1532016, 1, 1002587, 3, 1402044, 1, 2101013, 4, 1442046, 1, 1422031, 1, 1332054, 3, 1012056, 3, 1022047, 3, 3012002, 1, 1442012, 3, 1442018, 3, 1432010, 3, 2000005, 10, 2049100, 10, 2000004, 10};
    public static final int[] peanuts = {1152000, 30, 1152001, 10, 1152060, 10, 1152061, 10, 3010019, 10, 2040211, 30, 2040212, 10, 1022097, 20, 2049000, 30, 2049001, 30, 2049002, 30, 1332100, 100, 1382058, 100, 1402073, 100, 1432066, 100, 1442090, 100, 1452058, 100, 1462076, 100, 1472069, 100, 1482051, 100, 1492024, 100, 4031456, 50, 4000313, 50, 4001126, 50, 2028062, 1, 2430370, 50, 2430144, 100, 2430455, 20, 2028061, 50, 2530000, 20, 1032083, 50, 1032084, 20, 1112439, 20, 1122084, 50, 1122085, 20, 1132039, 50, 1132040, 20, 1092073, 50, 1092074, 20, 1092078, 40, 1092079, 20, 1092083, 40, 1092084, 20, 1092087, 50, 1092088, 50, 1302146, 40, 1302147, 20, 1312059, 30, 1312060, 20, 1312061, 10, 1312062, 1, 1322087, 30, 1322088, 20, 1322089, 10, 1322090, 1, 1332117, 30, 1332118, 20, 1332119, 10, 1332120, 1, 1332122, 30, 1332123, 20, 1332124, 10, 1332125, 1, 1342030, 30, 1342031, 20, 1342032, 10, 1342033, 1, 1372075, 30, 1372076, 20, 1372077, 10, 1372078, 1, 1382096, 30, 1382097, 20, 1382098, 10, 1392099, 1, 1402087, 30, 1402088, 20, 1402089, 10, 1402090, 1, 1412059, 30, 1412060, 20, 1412061, 10, 1412062, 1, 1422060, 30, 1422061, 20, 1422062, 10, 1422063, 1, 1432078, 30, 1432079, 20, 1432080, 10, 1432081, 1, 1442108, 30, 1442109, 20, 1442110, 10, 1442111, 1, 1452103, 30, 1452104, 20, 1452105, 10, 1452106, 1, 1462088, 30, 1462089, 20, 1462090, 10, 1462091, 1, 1472114, 30, 1472115, 20, 1472116, 10, 1472117, 1, 1482076, 30, 1482077, 20, 1482078, 10, 1482079, 1, 1492076, 30, 1492077, 20, 1492078, 10, 1492079, 1, 1972002, 2, 1612004, 2, 1622004, 2, 1632004, 2, 1642004, 2, 1652004, 2, 2047000, 1, 2047001, 1, 2047002, 1, 2047100, 1, 2047101, 1, 2047102, 1, 2047200, 1, 2047201, 1, 2047202, 1, 2047203, 1, 2047204, 1, 2047205, 1, 2047206, 1, 2047207, 1, 2047208, 1, 2047300, 1, 2047301, 1, 2047302, 1, 2047303, 1, 2047304, 1, 2047305, 1, 2047306, 1, 2047307, 1, 2047308, 1, 2047309, 1, 2046004, 1, 2046005, 1, 2046104, 1, 2046105, 1, 2046208, 1, 2046209, 1, 2046210, 1, 2046211, 1, 2046212, 1, 2049200, 1, 2049201, 1, 2049202, 1, 2049203, 1, 2049204, 1, 2049205, 1, 2049206, 1, 2049207, 1, 2049208, 1, 2049209, 1, 2049210, 1, 2049211, 1, 1382049, 100, 1382050, 150, 1382051, 100, 1382052, 150, 2040006, 20, 2040007, 20, 2040403, 20, 2040506, 2, 2040507, 2, 2040603, 20, 2040507, 20, 2040603, 20, 2040709, 2, 2040710, 2, 2040711, 2, 2040806, 2, 2040903, 20, 2040507, 20, 2040603, 20, 2041024, 20, 2041025, 20, 2043003, 2, 2044019, 2, 2044019, 2, 2043103, 2, 2043203, 2, 2043303, 2, 2043703, 2, 2043803, 2, 2044003, 2, 2044019, 2, 2044103, 2, 2040903, 20, 2040903, 20, 2044203, 2, 2044303, 2, 2044403, 2, 2044503, 2, 2044603, 2, 2044703, 2, 2044815, 2, 2044908, 2, 2340000, 2, 2049406, 10, 2049303, 10, 3010070, 1, 3010073, 1, 3010073, 1, 1402014, 1, 1003172, 2, 1102275, 2, 1082295, 2, 1052314, 2, 1072485, 2, 1003173, 2, 1102276, 2, 1082296, 2, 1052315, 2, 1072486, 2, 1003174, 2, 1102277, 2, 1082297, 2, 1052316, 2, 1072487, 2, 1003175, 2, 1102278, 2, 1082298, 2, 1052317, 2, 1072488, 2, 1003176, 2, 1102279, 2, 1082299, 2, 1052318, 2, 1072489, 2, 1432086, 2, 1442116, 2, 1322096, 2, 1422066, 2, 1402095, 2, 1412065, 2, 1302152, 2, 1312065, 2, 1372084, 2, 1382104, 2, 1452111, 2, 1462099, 2, 1332130, 2, 1472122, 2, 1342036, 2, 1492085, 2, 1532018, 2, 1302016, 2, 3010000, 10, 3010001, 10, 3010002, 10, 3010003, 10, 3010004, 10, 3010005, 10, 3010006, 10, 3010209, 10, 3010210, 10, 3010007, 10, 3010008, 10, 3010009, 10, 3010010, 10, 3010012, 10, 3010013, 10, 3010014, 10, 3010016, 10, 3010294, 10, 3010017, 10, 3010295, 10, 3010018, 10, 3010019, 10, 3010021, 10, 3010024, 10, 3010025, 10, 3010028, 10, 3010029, 10, 3010030, 10, 3010031, 10, 3010032, 10, 3010033, 10, 3010034, 10, 3010035, 10, 3010036, 10, 3010037, 10, 3010038, 10, 3010039, 10, 3010040, 10, 3010041, 10, 3010043, 10, 3010044, 10, 3010045, 10, 3010046, 10, 3010047, 10, 3010048, 10, 3010049, 10, 3010199, 10, 3010050, 10, 3010051, 10, 3010052, 10};
    public static int[] eventCommonReward = {0, 10, 1, 10, 4, 5, 4170024, 25, 4280000, 5, 4280001, 6, 5490000, 5, 5490001, 6, 4280006, 20, 4280005, 20, 4001126, 20, 4001129, 5, 4001168, 10, 4001254, 1, 4031456, 1, 4032733, 1, 4310028, 5, 4031612, 1};
    public static int[] 水晶八音盒s = {1382052, 10, 1382049, 10, 1382051, 10, 1382050, 10, 1372040, 10, 1372039, 10, 1372040, 10, 1372041, 10, 1372042, 10, 1402095, 10, 1422066, 10, 1412065, 10, 1312065, 10, 1322096, 10, 1302152, 10, 1442116, 10, 1432086, 10, 1382104, 10, 1372084, 10, 1452111, 10, 1462099, 10, 1362019, 10, 1332130, 10, 1472122, 10, 1482084, 10, 1492085, 10, 1342036, 10, 1052314, 10, 1052315, 10, 1052316, 10, 1052317, 10, 1052318, 10, 1072489, 10, 1072485, 10, 1072488, 10, 1072487, 10, 1072486, 10, 1003173, 10, 1102276, 10, 1082296, 10, 1003172, 10, 1102275, 10, 1082295, 10, 1082295, 10, 1003174, 10, 1102277, 10, 1082297, 10, 1003175, 10, 1102278, 10, 1082298, 10, 1003422, 10, 1003176, 10, 1102279, 10, 1082299, 10, 4021011, 10, 4021012, 10, 4020013, 10, 4021019, 10, 4032226, 10, 4000660, 10, 4000661, 10, 4000662, 10, 4000663, 10, 4032923, 10, 5190010, 10, 2430370, 10, 2430144, 10, 2430144, 10, 3994441, 10, 1102310, 10, 1102349, 10, 1000051, 10, 1001077, 10, 2511106, 10, 2511107, 10, 2511123, 10, 1112585, 10, 1112586, 10, 1112663, 10, 1122122, 10, 1122123, 10, 1122124, 10, 1122125, 10, 1122126, 10, 1122128, 10, 1122129, 10, 1122130, 10, 1122131, 10, 1122132, 10, 1122133, 10, 1122134, 10, 1122135, 10, 1122136, 10, 1122137, 10, 1122138, 10, 1122139, 10, 1122140, 10, 1122141, 10, 1122142, 10, 1122143, 10, 1122144, 10, 1122145, 10, 1122146, 10, 1122147, 10, 2049405, 10, 4220140, 10, 4220141, 10, 4220142, 10, 4220143, 10, 4220144, 10, 4001552, 10, 4001558, 10, 4001559, 10, 4001560, 10, 4001561, 10, 4220075, 10, 4220076, 10, 4220077, 10, 4220078, 10, 4220079, 10, 1112238, 10, 1112135, 10, 4220077, 10, 1112312, 10, 4021010, 10, 5062000, 10, 5062002, 10, 5062100, 10, 5062001, 10, 5750000, 10, 5062005, 10, 1122011, 10, 1122012, 10, 1122118, 10, 1672016, 10, 1672015, 10, 1672014, 10, 1672013, 10, 1672012, 10, 1672011, 10, 1112666, 10, 1112667, 10, 1012170, 10, 1012171, 10, 1012172, 10, 1012173, 10, 1012174, 10, 1182006, 10, 1182020, 10, 1182007, 10, 1182009, 10, 1182010, 10, 1182011, 10, 1182005, 10, 1182004, 10, 1182003, 10, 1182002, 10, 1182001, 10, 3010287, 10, 3010211, 10};
    public static int[] 所有椅子s = {3010000, 10, 3010001, 10, 3010002, 10, 3010003, 10, 3010004, 10, 3010005, 10, 3010006, 10, 3010007, 10, 3010008, 10, 3010009, 10, 3010010, 10, 3010011, 10, 3010012, 10, 3010013, 10, 3010014, 10, 3010015, 10, 3010016, 10, 3010017, 10, 3010018, 10, 3010019, 10, 3010020, 10, 3010021, 10, 3010022, 10, 3010023, 10, 3010024, 10, 3010025, 10, 3010026, 10, 3010027, 10, 3010028, 10, 3010029, 10, 3010030, 10, 3010031, 10, 3010032, 10, 3010033, 10, 3010034, 10, 3010035, 10, 3010036, 10, 3010037, 10, 3010038, 10, 3010039, 10, 3010040, 10, 3010041, 10, 3010042, 10, 3010043, 10, 3010044, 10, 3010045, 10, 3010046, 10, 3010047, 10, 3010048, 10, 3010049, 10, 3010050, 10, 3010051, 10, 3010052, 10, 3010053, 10, 3010054, 10, 3010055, 10, 3010056, 10, 3010057, 10, 3010058, 10, 3010059, 10, 3010060, 10, 3010061, 10, 3010062, 10, 3010063, 10, 3010064, 10, 3010065, 10, 3010066, 10, 3010067, 10, 3010068, 10, 3010069, 10, 3010070, 1, 3010071, 10, 3010072, 10, 3010073, 10, 3010074, 10, 3010075, 10, 3010077, 10, 3010078, 10, 3010079, 10, 3010080, 10, 3010081, 10, 3010082, 10, 3010083, 10, 3010084, 10, 3010085, 10, 3010092, 10, 3010093, 10, 3010094, 10, 3010095, 10, 3010096, 10, 3010097, 10, 3010098, 10, 3010099, 10, 3010100, 10, 3010101, 10, 3010102, 10, 3010103, 10, 3010104, 10, 3010105, 10, 3010106, 10, 3010107, 10, 3010108, 10, 3010109, 10, 3010110, 10, 3010111, 10, 3010112, 10, 3010113, 10, 3010114, 10, 3010115, 10, 3010116, 10, 3010117, 10, 3010118, 10, 3010119, 10, 3010120, 10, 3010121, 10, 3010122, 10, 3010123, 10, 3010124, 10, 3010125, 10, 3010126, 10, 3010127, 10, 3010128, 10, 3010129, 10, 3010130, 10, 3010131, 10, 3010132, 10, 3010133, 10, 3010134, 10, 3010135, 10, 3010136, 10, 3010137, 10, 3010138, 10, 3010139, 10, 3010140, 10, 3010141, 10, 3010142, 10, 3010143, 10, 3010144, 10, 3010145, 10, 3010146, 10, 3010147, 10, 3010148, 10, 3010149, 10, 3010150, 10, 3010151, 10, 3010152, 10, 3010153, 10, 3010154, 10, 3010155, 10, 3010156, 10, 3010157, 10, 3010158, 10, 3010159, 10, 3010160, 10, 3010161, 10, 3010162, 10, 3010163, 10, 3010164, 10, 3010166, 10, 3010167, 10, 3010168, 10, 3010169, 10, 3010170, 10, 3010171, 10, 3010172, 10, 3010173, 10, 3010174, 10, 3010175, 10, 3010177, 10, 3010179, 10, 3010179, 10, 3010180, 10, 3010181, 10, 3010182, 10, 3010183, 10, 3010184, 10, 3010185, 10, 3010186, 10, 3010187, 10, 3010188, 10, 3010189, 10, 3010190, 10, 3010191, 10, 3010192, 10, 3010193, 10, 3010194, 10, 3010195, 10, 3010196, 10, 3010197, 10, 3010198, 10, 3010199, 10, 3010200, 10, 3010201, 10, 3010202, 10, 3010203, 10, 3010204, 10, 3010205, 10, 3010206, 10, 3010207, 10, 3010208, 10, 3010209, 10, 3010210, 10, 3010211, 10, 3010212, 10, 3010213, 10, 3010214, 10, 3010215, 10, 3010216, 10, 3010217, 10, 3010218, 10, 3010219, 10, 3010220, 10, 3010221, 10, 3010222, 10, 3010223, 10, 3010224, 10, 3010225, 10, 3010226, 10, 3010257, 10, 3010279, 10, 3010280, 10, 3010281, 10, 3010282, 10, 3010283, 10, 3010284, 10, 3010285, 10, 3010286, 10, 3010287, 10, 3010288, 10, 3010289, 10, 3010290, 10, 3010291, 10, 3010292, 10, 3010293, 10, 3010294, 10, 3010295, 10, 3010296, 10, 3010297, 10, 3010298, 10, 3010299, 10, 3010300, 10, 3010301, 10, 3010302, 10, 3010303, 10, 3010304, 10, 3010305, 10, 3010306, 10, 3010307, 10, 3010308, 10, 3010309, 10, 3010310, 10, 3010311, 10, 3010312, 10, 3010313, 10, 3010314, 10, 3010315, 10, 3010316, 10, 3010317, 10, 3010318, 10, 3010319, 10, 3010320, 10, 3010321, 10, 3010322, 10, 3010354, 10, 3010355, 10, 3010356, 10, 3010357, 10, 3010361, 10, 3010362, 10, 3010364, 10, 3010365, 10, 3010400, 10, 3010401, 10, 3010402, 10, 3010403, 10, 3010404, 10, 3010405, 10, 3010406, 10, 3010407, 10, 3010408, 10, 3010409, 10, 3010410, 10, 3010411, 10, 3010412, 10, 3010413, 10, 3010414, 10, 3010415, 10, 3010416, 10, 3010417, 10, 3012001, 10, 3012002, 10, 3012003, 10, 3012006, 10, 3012010, 10, 3012011, 10, 3013000, 10, 3013002, 10};
    public static int[] 所有纪念币 = {4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310025, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310034, 4310027, 4310027, 4310027, 4310027, 4310027, 4310027, 4310027, 4310027, 4310027, 4310027, 4310019, 4310021, 4310022, 4310028, 4310036, 4310038, 4032181, 4001208, 4001209, 4001210, 4001211, 4001212, 4310023, 4032766, 4310002, 4310014, 4310025, 4310027, 4001547, 4001548, 4001549, 4001550, 4001551, 4310018, 4001626, 4001680, 4310029, 4310030, 4310034, 4310036, 4310038, 4310049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    public static int[] 纪念币 = {4310025, 4310034, 4310027, 4032171, 4032056, 4310048, 4310057, 4310014, 4310015, 4310025, 4310027, 4001680, 4001784, 4001785, 2702000, 2431887};
    public static int[] 特殊掉落 = {2431174};
    public static int[] BOSS掉落未鉴定装备 = {2431174};
    public static int[] BOSS特殊掉落 = {5062000, 5062002, 5062100, 5062001, 5750000, 2431174, 2590000, 2590001, 2512294, 2512295, 2512296, 2512297, 2512298, 2512299, 2512300, 2512301, 2512302, 2512303, 2512304, 2614003, 2614004};
    public static int[] 水晶天平s = {1382052, 10, 1382049, 10, 1382051, 10, 1382050, 10, 1372040, 10, 1372039, 10, 1372040, 10, 1372041, 10, 1372042, 10, 1402095, 10, 1422066, 10, 1412065, 10, 1312065, 10, 1322096, 10, 1302152, 10, 1442116, 10, 1432086, 10, 1382104, 10, 1372084, 10, 1452111, 10, 1462099, 10, 1362019, 10, 1332130, 10, 1472122, 10, 1482084, 10, 1492085, 10, 1342036, 10, 1052314, 10, 1052315, 10, 1052316, 10, 1052317, 10, 1052318, 10, 1072489, 10, 1072485, 10, 1072488, 10, 1072487, 10, 1072486, 10, 1003173, 10, 1102276, 10, 1082296, 10, 1003172, 10, 1102275, 10, 1082295, 10, 1082295, 10, 1003174, 10, 1102277, 10, 1082297, 10, 1003175, 10, 1102278, 10, 1082298, 10, 1003422, 10, 1003176, 10, 1102279, 10, 1082299, 10, 4021011, 10, 4021012, 10, 4020013, 10, 4021019, 10, 4032226, 10, 4000660, 10, 4000661, 10, 4000662, 10, 4000663, 10, 4032923, 10, 5190010, 10, 2430370, 10, 2430144, 10, 2430144, 10, 3994441, 10, 1102310, 10, 1102349, 10, 1000051, 10, 1001077, 10, 2511106, 10, 2511107, 10, 2511123, 10, 1112585, 10, 1112586, 10, 1112663, 10, 1122122, 10, 1122123, 10, 1122124, 10, 1122125, 10, 1122126, 10, 1122128, 10, 1122129, 10, 1122130, 10, 1122131, 10, 1122132, 10, 1122133, 10, 1122134, 10, 1122135, 10, 1122136, 10, 1122137, 10, 1122138, 10, 1122139, 10, 1122140, 10, 1122141, 10, 1122142, 10, 1122143, 10, 1122144, 10, 1122145, 10, 1122146, 10, 1122147, 10, 2049405, 10, 4220140, 10, 4220141, 10, 4220142, 10, 4220143, 10, 4220144, 10, 4001552, 10, 4001558, 10, 4001559, 10, 4001560, 10, 4001561, 10, 4220075, 10, 4220076, 10, 4220077, 10, 4220078, 10, 4220079, 10, 1112238, 10, 1112135, 10, 4220077, 10, 1112312, 10, 4021010, 10, 5062000, 10, 5062002, 10, 5062100, 10, 5062001, 10, 5750000, 10, 5062005, 10, 1122011, 10, 1122012, 10, 1122118, 10, 1672016, 10, 1672015, 10, 1672014, 10, 1672013, 10, 1672012, 10, 1672011, 10, 1112666, 10, 1112667, 10, 1012170, 10, 1012171, 10, 1012172, 10, 1012173, 10, 1012174, 10, 1182006, 10, 1182020, 10, 1182007, 10, 1182009, 10, 1182010, 10, 1182011, 10, 1182005, 10, 1182004, 10, 1182003, 10, 1182002, 10, 1182001, 10, 3010287, 10, 3010211, 10, 3010000, 10, 3010001, 10, 3010002, 10, 3010003, 10, 3010004, 10, 3010005, 10, 3010006, 10, 3010007, 10, 3010008, 10, 3010009, 10, 3010010, 10, 3010011, 10, 3010012, 10, 3010013, 10, 3010014, 10, 3010015, 10, 3010016, 10, 3010017, 10, 3010018, 10, 3010019, 10, 3010020, 10, 3010021, 10, 3010022, 10, 3010023, 10, 3010024, 10, 3010025, 10, 3010026, 10, 3010027, 10, 3010028, 10, 3010029, 10, 3010030, 10, 3010031, 10, 3010032, 10, 3010033, 10, 3010034, 10, 3010035, 10, 3010036, 10, 3010037, 10, 3010038, 10, 3010039, 10, 3010040, 10, 3010041, 10, 3010042, 10, 3010043, 10, 3010044, 10, 3010045, 10, 3010046, 10, 3010047, 10, 3010048, 10, 3010049, 10, 3010050, 10, 3010051, 10, 3010052, 10, 3010053, 10, 3010054, 10, 3010055, 10, 3010056, 10, 3010057, 10, 3010058, 10, 3010059, 10, 3010060, 10, 3010061, 10, 3010062, 10, 3010063, 10, 3010064, 10, 3010065, 10, 3010066, 10, 3010067, 10, 3010068, 10, 3010069, 10, 3010070, 1, 3010071, 10, 3010072, 10, 3010073, 10, 3010074, 10, 3010075, 10, 3010077, 10, 3010078, 10, 3010079, 10, 3010080, 10, 3010081, 10, 3010082, 10, 3010083, 10, 3010084, 10, 3010085, 10, 3010092, 10, 3010093, 10, 3010094, 10, 3010095, 10, 3010096, 10, 3010097, 10, 3010098, 10, 3010099, 10, 3010100, 10, 3010101, 10, 3010102, 10, 3010103, 10, 3010104, 10, 3010105, 10, 3010106, 10, 3010107, 10, 3010108, 10, 3010109, 10, 3010110, 10, 3010111, 10, 3010112, 10, 3010113, 10, 3010114, 10, 3010115, 10, 3010116, 10, 3010117, 10, 3010118, 10, 3010119, 10, 3010120, 10, 3010121, 10, 3010122, 10, 3010123, 10, 3010124, 10, 3010125, 10, 3010126, 10, 3010127, 10, 3010128, 10, 3010129, 10, 3010130, 10, 3010131, 10, 3010132, 10, 3010133, 10, 3010134, 10, 3010135, 10, 3010136, 10, 3010137, 10, 3010138, 10, 3010139, 10, 3010140, 10, 3010141, 10, 3010142, 10, 3010143, 10, 3010144, 10, 3010145, 10, 3010146, 10, 3010147, 10, 3010148, 10, 3010149, 10, 3010150, 10, 3010151, 10, 3010152, 10, 3010153, 10, 3010154, 10, 3010155, 10, 3010156, 10, 3010157, 10, 3010158, 10, 3010159, 10, 3010160, 10, 3010161, 10, 3010162, 10, 3010163, 10, 3010164, 10, 3010166, 10, 3010167, 10, 3010168, 10, 3010169, 10, 3010170, 10, 3010171, 10, 3010172, 10, 3010173, 10, 3010174, 10, 3010175, 10, 3010177, 10, 3010179, 10, 3010179, 10, 3010180, 10, 3010181, 10, 3010182, 10, 3010183, 10, 3010184, 10, 3010185, 10, 3010186, 10, 3010187, 10, 3010188, 10, 3010189, 10, 3010190, 10, 3010191, 10, 3010192, 10, 3010193, 10, 3010194, 10, 3010195, 10, 3010196, 10, 3010197, 10, 3010198, 10, 3010199, 10, 3010200, 10, 3010201, 10, 3010202, 10, 3010203, 10, 3010204, 10, 3010205, 10, 3010206, 10, 3010207, 10, 3010208, 10, 3010209, 10, 3010210, 10, 3010211, 10, 3010212, 10, 3010213, 10, 3010214, 10, 3010215, 10, 3010216, 10, 3010217, 10, 3010218, 10, 3010219, 10, 3010220, 10, 3010221, 10, 3010222, 10, 3010223, 10, 3010224, 10, 3010225, 10, 3010226, 10, 3010257, 10, 3010279, 10, 3010280, 10, 3010281, 10, 3010282, 10, 3010283, 10, 3010284, 10, 3010285, 10, 3010286, 10, 3010287, 10, 3010288, 10, 3010289, 10, 3010290, 10, 3010291, 10, 3010292, 10, 3010293, 10, 3010294, 10, 3010295, 10, 3010296, 10, 3010297, 10, 3010298, 10, 3010299, 10, 3010300, 10, 3010301, 10, 3010302, 10, 3010303, 10, 3010304, 10, 3010305, 10, 3010306, 10, 3010307, 10, 3010308, 10, 3010309, 10, 3010310, 10, 3010311, 10, 3010312, 10, 3010313, 10, 3010314, 10, 3010315, 10, 3010316, 10, 3010317, 10, 3010318, 10, 3010319, 10, 3010320, 10, 3010321, 10, 3010322, 10, 3010354, 10, 3010355, 10, 3010356, 10, 3010357, 10, 3010361, 10, 3010362, 10, 3010364, 10, 3010365, 10, 3010400, 10, 3010401, 10, 3010402, 10, 3010403, 10, 3010404, 10, 3010405, 10, 3010406, 10, 3010407, 10, 3010408, 10, 3010409, 10, 3010410, 10, 3010411, 10, 3010412, 10, 3010413, 10, 3010414, 10, 3010415, 10, 3010416, 10, 3010417, 10, 3012001, 10, 3012002, 10, 3012003, 10, 3012006, 10, 3012010, 10, 3012011, 10, 3013000, 10, 3013002, 10};
    //public static int[] 所有怪物掉落 = {4310080,4001126, 4170025, 4170028, 4170025, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 2430210, 2430209, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4001126, 4170025, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 4170028, 0, 0, 0, 0, 0, 0, 4001126, 4170025, 4001129, 4001129, 0, 0, 0, 0, 0, 0, 4001129, 4001129, 4001129, 4001129, 0, 0, 0, 0, 0, 0, 4170025, 4170025, 4170025, 4170025, 4001126, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 4170025, 4170025, 4170025, 4170025, 4170025, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 4001126, 4280006, 4280005, 4280005, 4280005, 4280005, 4280005, 4280006, 4280006, 4280006, 4280006, 4000313, 4031456, 4001129, 4001126, 4001126, 4170025, 4170025, 4170025, 4170025, 4170025, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 4001126, 4280006, 4280005, 4280005, 4280005, 4280005, 4280005, 4280006, 4280006, 4280006, 4280006, 4000313, 4031456, 4001129, 4001126, 4001126, 4170025, 4170025, 4170025, 4170025, 4170025, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4280006, 4280005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4280005, 4280005, 4280005, 4280005, 4280006, 4280006, 4280006, 4280006, 4000313, 4031456, 4001129, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 5220040, 5220040, 4001126, 4001126, 4170025, 4001129, 4001129, 4001129, 4001129, 4001129, 4001129, 4170025, 4170025, 4170025, 4170025, 4001126, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 4170025, 4170025, 4170025, 4170025, 4170025, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 4001126, 4280006, 4280005, 4280005, 4280005, 4280005, 4280005, 4280006, 4280006, 4280006, 4280006, 4000313, 4031456, 4001129, 4001126, 4001126, 4170025, 4170025, 4170025, 4170025, 4170025, 4001126, 4001126, 4001126, 4001126, 4001126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4280006, 4280005, 4280005, 4280005, 4280005, 4280005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4280006, 4280006, 4280006, 4280006, 4000313, 4031456, 4001129, 4001126, 4001126, 4170025, 4170025, 4170025, 4170025, 4170025, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4001126, 4280006, 4280005, 4280005, 4280005, 4280005, 4280005, 4280006, 4280006, 4280006, 4280006, 4000313, 4031456, 4001129, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 2430144, 2430370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5220040, 5220040, 5220040, 5220040, 5220040, 5060007, 5060006, 5062000, 5062001, 5062000, 5062001, 5062000, 5062001, 5062000, 5062001, 5062000, 5062001, 5062000, 5062001};
    public static int[] 所有怪物掉落 = {0};
    public static int[] eventUncommonReward = {1, 4, 2, 8, 3, 8, 5062000, 20, 2430082, 20, 2430092, 20, 2022459, 2, 2022460, 1, 2022462, 1, 2430117, 2, 2430118, 2, 2430201, 4, 2430228, 4, 2430283, 4, 2430136, 4, 2430476, 4, 2430511, 4, 2430206, 4, 2430199, 1, 1032062, 5, 5220000, 28, 2022459, 5, 2022460, 5, 2022461, 5, 2022462, 5, 2022463, 5, 5050000, 2, 4080100, 10, 4080000, 10, 2049100, 10, 2430144, 100, 2290285, 1, 4031456, 50, 4000313, 50, 4001126, 50, 2028062, 1, 2430370, 50, 2430455, 20, 2028061, 10, 2530000, 5, 2531000, 5, 2041100, 1, 2041101, 1, 2041102, 1, 2041103, 1, 2041104, 1, 2041105, 1, 2041106, 1, 2041107, 1, 2041108, 1, 2041109, 1, 2041110, 1, 2041111, 1, 2041112, 1, 2041113, 1, 2041114, 1, 2041115, 1, 2041116, 1, 2041117, 1, 2041118, 1, 2041119, 1, 2041300, 1, 2041301, 1, 2041302, 1, 2041303, 1, 2041304, 1, 2041305, 1, 2041306, 1, 2041307, 1, 2041308, 1, 2041309, 1, 2041310, 1, 2041311, 1, 2041312, 1, 2041313, 1, 2041314, 1, 2041315, 1, 2041316, 1, 2041317, 1, 2041318, 1, 2041319, 1, 2049200, 1, 2049201, 1, 2049202, 1, 2049203, 1, 2049204, 1, 2049205, 1, 2049206, 1, 2049207, 1, 2049208, 1, 2049209, 1, 2049210, 1, 2049211, 1};
    public static int[] eventRareReward = {2049100, 5, 2430144, 100, 2290285, 1, 4031456, 50, 4000313, 50, 4001126, 50, 2028062, 1, 2028061, 5, 2530000, 2, 2531000, 2, 2049116, 1, 2049401, 10, 2049301, 20, 2049400, 3, 2340000, 1, 3010130, 5, 3010131, 5, 3010132, 5, 3010133, 5, 3010136, 5, 3010116, 5, 3010117, 5, 3010118, 5, 1112405, 1, 1112445, 1, 1022097, 1, 2040211, 1, 2040212, 1, 2049000, 2, 2049001, 2, 2049002, 2, 2049003, 2, 1012058, 2, 1012059, 2, 1012060, 2, 1012061, 2, 2022460, 4, 2022461, 3, 2022462, 4, 2022463, 3, 2040041, 1, 2040042, 1, 2040334, 1, 2040430, 1, 2040538, 1, 2040539, 1, 2040630, 1, 2040740, 1, 2040741, 1, 2040742, 1, 2040829, 1, 2040830, 1, 2040936, 1, 2041066, 1, 2041067, 1, 2043023, 1, 2043117, 1, 2043217, 1, 2043312, 1, 2043712, 1, 2043812, 1, 2044025, 1, 2044117, 1, 2044217, 1, 2044317, 1, 2044417, 1, 2044512, 1, 2044612, 1, 2044712, 1, 2046000, 1, 2046001, 1, 2046004, 1, 2046005, 1, 2046100, 1, 2046101, 1, 2046104, 1, 2046105, 1, 2046200, 1, 2046201, 1, 2046202, 1, 2046203, 1, 2046208, 1, 2046209, 1, 2046210, 1, 2046211, 1, 2046212, 1, 2046300, 1, 2046301, 1, 2046302, 1, 2046303, 1, 2047000, 1, 2047001, 1, 2047002, 1, 2047100, 1, 2047101, 1, 2047102, 1, 2047200, 1, 2047201, 1, 2047202, 1, 2047203, 1, 2047204, 1, 2047205, 1, 2047206, 1, 2047207, 1, 2047208, 1, 2047300, 1, 2047301, 1, 2047302, 1, 2047303, 1, 2047304, 1, 2047305, 1, 2047306, 1, 2047307, 1, 2047308, 1, 2047309, 1, 1112427, 5, 1112428, 5, 1112429, 5, 1012240, 10, 1022117, 10, 1032095, 10, 1112659, 10, 2070007, 10, 2330007, 5, 2070016, 5, 2070018, 5, 1152038, 1, 1152039, 1, 1152040, 1, 1152041, 1, 1122090, 1, 1122094, 1, 1122098, 1, 1122102, 1, 1012213, 1, 1012219, 1, 1012225, 1, 1012231, 1, 1012237, 1, 2070023, 5, 2070024, 5, 2330008, 5, 2003516, 5, 2003517, 1, 1132052, 1, 1132062, 1, 1132072, 1, 1132082, 1, 1112585, 1, 1072502, 1, 1072503, 1, 1072504, 1, 1072505, 1, 1072506, 1, 1052333, 1, 1052334, 1, 1052335, 1, 1052336, 1, 1052337, 1, 1082305, 1, 1082306, 1, 1082307, 1, 1082308, 1, 1082309, 1, 1003197, 1, 1003198, 1, 1003199, 1, 1003200, 1, 1003201, 1, 1662000, 1, 1662001, 1, 1672000, 1, 1672001, 1, 1672002, 1, 1112583, 1, 1032092, 1, 1132084, 1, 2430290, 1, 2430292, 1, 2430294, 1, 2430296, 1, 2430298, 1, 2430300, 1, 2430302, 1, 2430304, 1, 2430306, 1, 2430308, 1, 2430310, 1, 2430312, 1, 2430314, 1, 2430316, 1, 2430318, 1, 2430320, 1, 2430322, 1, 2430324, 1, 2430326, 1, 2430328, 1, 2430330, 1, 2430332, 1, 2430334, 1, 2430336, 1, 2430338, 1, 2430340, 1, 2430342, 1, 2430344, 1, 2430347, 1, 2430349, 1, 2430351, 1, 2430353, 1, 2430355, 1, 2430357, 1, 2430359, 1, 2430361, 1, 2430392, 1, 2430512, 1, 2430536, 1, 2430477, 1, 2430146, 1, 2430148, 1, 2430137, 1};
    public static int[] eventSuperReward = {2022121, 10, 4031307, 50, 3010127, 10, 3010128, 10, 3010137, 10, 3010157, 10, 2049300, 10, 2040758, 10, 1442057, 10, 2049402, 10, 2049304, 1, 2049305, 1, 2040759, 7, 2040760, 5, 2040125, 10, 2040126, 10, 1012191, 5, 1112514, 1, 1112531, 1, 1112629, 1, 1112646, 1, 1112515, 1, 1112532, 1, 1112630, 1, 1112647, 1, 1112516, 1, 1112533, 1, 1112631, 1, 1112648, 1, 2040045, 10, 2040046, 10, 2040333, 10, 2040429, 10, 2040542, 10, 2040543, 10, 2040629, 10, 2040755, 10, 2040756, 10, 2040757, 10, 2040833, 10, 2040834, 10, 2041068, 10, 2041069, 10, 2043022, 12, 2043120, 12, 2043220, 12, 2043313, 12, 2043713, 12, 2043813, 12, 2044028, 12, 2044120, 12, 2044220, 12, 2044320, 12, 2044520, 12, 2044513, 12, 2044613, 12, 2044713, 12, 2044817, 12, 2044910, 12, 2046002, 5, 2046003, 5, 2046102, 5, 2046103, 5, 2046204, 10, 2046205, 10, 2046206, 10, 2046207, 10, 2046304, 10, 2046305, 10, 2046306, 10, 2046307, 10, 2040006, 2, 2040007, 2, 2040303, 2, 2040403, 2, 2040506, 2, 2040507, 2, 2040603, 2, 2040709, 2, 2040710, 2, 2040711, 2, 2040806, 2, 2040903, 2, 2040913, 2, 2041024, 2, 2041025, 2, 2044815, 2, 2044908, 2, 1152046, 1, 1152047, 1, 1152048, 1, 1152049, 1, 1122091, 1, 1122095, 1, 1122099, 1, 1122103, 1, 1012214, 1, 1012220, 1, 1012226, 1, 1012232, 1, 1012238, 1, 1032088, 1, 1032089, 1, 1032090, 1, 1032091, 1, 1132053, 1, 1132063, 1, 1132073, 1, 1132083, 1, 1112586, 1, 1112593, 1, 1112597, 1, 1662002, 1, 1662003, 1, 1672003, 1, 1672004, 1, 1672005, 1, 1092088, 1, 1092089, 1, 1092087, 1, 1102275, 1, 1102276, 1, 1102277, 1, 1102278, 1, 1102279, 1, 1102280, 1, 1102281, 1, 1102282, 1, 1102283, 1, 1102284, 1, 1082295, 1, 1082296, 1, 1082297, 1, 1082298, 1, 1082299, 1, 1082300, 1, 1082301, 1, 1082302, 1, 1082303, 1, 1082304, 1, 1072485, 1, 1072486, 1, 1072487, 1, 1072488, 1, 1072489, 1, 1072490, 1, 1072491, 1, 1072492, 1, 1072493, 1, 1072494, 1, 1052314, 1, 1052315, 1, 1052316, 1, 1052317, 1, 1052318, 1, 1052319, 1, 1052329, 1, 1052321, 1, 1052322, 1, 1052323, 1, 1003172, 1, 1003173, 1, 1003174, 1, 1003175, 1, 1003176, 1, 1003177, 1, 1003178, 1, 1003179, 1, 1003180, 1, 1003181, 1, 1302152, 1, 1302153, 1, 1312065, 1, 1312066, 1, 1322096, 1, 1322097, 1, 1332130, 1, 1332131, 1, 1342035, 1, 1342036, 1, 1372084, 1, 1372085, 1, 1382104, 1, 1382105, 1, 1402095, 1, 1402096, 1, 1412065, 1, 1412066, 1, 1422066, 1, 1422067, 1, 1432086, 1, 1432087, 1, 1442116, 1, 1442117, 1, 1452111, 1, 1452112, 1, 1462099, 1, 1462100, 1, 1472122, 1, 1472123, 1, 1482084, 1, 1482085, 1, 1492085, 1, 1492086, 1, 1532017, 1, 1532018, 1, 2430291, 1, 2430293, 1, 2430295, 1, 2430297, 1, 2430299, 1, 2430301, 1, 2430303, 1, 2430305, 1, 2430307, 1, 2430309, 1, 2430311, 1, 2430313, 1, 2430315, 1, 2430317, 1, 2430319, 1, 2430321, 1, 2430323, 1, 2430325, 1, 2430327, 1, 2430329, 1, 2430331, 1, 2430333, 1, 2430335, 1, 2430337, 1, 2430339, 1, 2430341, 1, 2430343, 1, 2430345, 1, 2430348, 1, 2430350, 1, 2430352, 1, 2430354, 1, 2430356, 1, 2430358, 1, 2430360, 1, 2430362, 1, 1012239, 1, 1122104, 1, 1112584, 1, 1032093, 1, 1132085, 1};
    public static int[] tenPercent = {2040002, 2040005, 2040026, 2040031, 2040100, 2040105, 2040200, 2040205, 2040302, 2040310, 2040318, 2040323, 2040328, 2040329, 2040330, 2040331, 2040402, 2040412, 2040419, 2040422, 2040427, 2040502, 2040505, 2040514, 2040517, 2040534, 2040602, 2040612, 2040619, 2040622, 2040627, 2040702, 2040705, 2040708, 2040727, 2040802, 2040805, 2040816, 2040825, 2040902, 2040915, 2040920, 2040925, 2040928, 2040933, 2041002, 2041005, 2041008, 2041011, 2041014, 2041017, 2041020, 2041023, 2041058, 2041102, 2041105, 2041108, 2041111, 2041302, 2041305, 2041308, 2041311, 2043002, 2043008, 2043019, 2043102, 2043114, 2043202, 2043214, 2043302, 2043402, 2043702, 2043802, 2044002, 2044014, 2044015, 2044102, 2044114, 2044202, 2044214, 2044302, 2044314, 2044402, 2044414, 2044502, 2044602, 2044702, 2044802, 2044809, 2044902, 2045302, 2048002, 2048005};
    public static int[] fishingReward = {0, 100, 1, 100, 1302021, 5, 1072238, 1, 1072239, 1, 2049100, 2, 2430144, 100, 2290285, 1, 4031456, 50, 4000313, 50, 4001126, 50, 2028062, 1, 2430370, 50, 2430455, 20, 2028061, 1, 2049301, 1, 2049401, 1, 1302000, 3, 1442011, 1, 4000517, 8, 4031627, 2, 4031628, 1, 4031630, 1, 4031631, 1, 4031632, 1, 4031633, 2, 4031634, 1, 4031635, 1, 4031636, 1, 4031637, 2, 4031638, 2, 4031639, 1, 4031640, 1, 4031641, 2, 4031642, 2, 4031643, 1, 4031644, 1, 4031645, 2, 4031646, 2, 4031647, 1, 4031648, 1, 4001187, 20, 4001188, 20, 4001189, 20, 4031629, 1};
    public static int[] Equipments_Bonus = {1122017};
    public static int[] blockedMaps = {180000001, 180000002, 109050000, 280030100, 240060200, 280090000, 280030001, 240060201, 950101100, 950101010};
    public static final int[] normalDrops = {4310088};
    public static final int[] rareDrops = {2049100, 4031456, 4000313, 4001126, 2430370, 2430144, 2430455, 2028061, 2290285, 2049301, 2049401, 2022326, 2049000, 2049001, 2049002};
    public static final int[] superDrops = {2040804, 2049400, 4031456, 4000313, 4001126, 2430370, 2430455, 2028061, 2430144, 2290285, 2049100};
    public static int[] owlItems = {1332052, 2043301, 2040804, 2049100, 1402016, 1382060, 1082002, 2070006, 2290272, 2049301};
    public static final int[] publicNpcIds = {9270035, 9070004, 9010022, 9071003, 9000087, 9000088, 9010000, 9000085, 9000018, 9000000};
    public static final String[] publicNpcs = {"#cUniversal NPC#", "Move to the #cBattle Square# to fight other players", "Move to a variety of #cparty quests#.", "Move to #cMonster Park# to team up to defeat monsters.", "Move to #cFree Market# to trade items with players.", "Move to #cArdentmill#, the crafting town.", "Check #cdrops# of any monster in the map.", "Review #cPokedex#.", "Review #cPokemon#.", "Join an #cevent# in progress."};
    public static final int OMOK_SCORE = 122200;
    public static final int MATCH_SCORE = 122210;
    public static final int HP_ITEM = 122221;
    public static final int MP_ITEM = 122223;
    public static final int BUFF_SKILL = 122224;
    public static final int JAIL_TIME = 123455;
    public static final int JAIL_QUEST = 123456;
    public static final int REPORT_QUEST = 123457;
    public static final int ULT_EXPLORER = 111111;
    public static final int POKEMON_WINS = 122400;
    public static final int ENERGY_DRINK = 122500;
    public static final int HARVEST_TIME = 122501;
    public static final int PENDANT_SLOT = 122700;
    public static final int CURRENT_SET = 122800;
    public static final int BOSS_PQ = 150001;
    public static final int JAGUAR = 111112;
    public static final int DOJO = 150100;
    public static final int DOJO_RECORD = 150101;
    public static final int PARTY_REQUEST = 122900;
    public static final int PARTY_INVITE = 122901;
    public static final int QUICK_SLOT = 123000;
    public static final int 精灵耳朵 = 7784;

    public static long getExpNeededForLevel(int level) {
        if ((level < 0) || (level >= exp.length)) {
            return 9223372036854775807L;
        }
        return exp[level];
    }

    public static int getRyExpNeededForLevel(int rylevel) {
        if (rylevel < 0) {
            return 2147483647;
        }
        if (rylevel >= ryexp.length) {
            return rylevel * 100000 + rylevel * 1111;
        }
        return ryexp[rylevel];
    }

    public static int getGuildExpNeededForLevel(int level) {
        if ((level < 0) || (level >= guildExp.length)) {
            return 2147483647;
        }
        return guildExp[level];
    }

    public static int getPVPExpNeededForLevel(int level) {
        if ((level < 0) || (level >= pvpExp.length)) {
            return 2147483647;
        }
        return pvpExp[level];
    }

    public static int getClosenessNeededForLevel(int level) {
        return closeness[(level - 1)];
    }

    public static int getMountExpNeededForLevel(int level) {
        return mountExp[(level - 1)];
    }

    public static int getTraitExpNeededForLevel(int level) {
        if ((level < 0) || (level >= cumulativeTraitExp.length)) {
            return 2147483647;
        }
        return cumulativeTraitExp[level];
    }

    public static int getSetExpNeededForLevel(int level) {
        if ((level < 0) || (level >= setScore.length)) {
            return 2147483647;
        }
        return setScore[level];
    }

    public static int getMonsterHP(int level) {
        if ((level < 0) || (level >= mobHpVal.length)) {
            return 2147483647;
        }
        return mobHpVal[level];
    }

    public static int getBookLevel(int level) {
        return 5 * level * (level + 1);
    }

    public static int getTimelessRequiredEXP(int level) {
        return 70 + level * 10;
    }

    public static int getReverseRequiredEXP(int level) {
        return 60 + level * 5;
    }

    public static int getProfessionEXP(int level) {
        if ((level < 0) || (level >= professionExp.length)) {
            return 2147483647;
        }
        return professionExp[level];
    }

    public static boolean isHarvesting(int itemId) {
        return (itemId >= 1500000) && (itemId < 1520000);
    }

    public static int maxViewRangeSq() {
        return 1000000;
    }

    public static int maxViewRangeSq_Half() {
        return 500000;
    }

    public static boolean isJobFamily(int baseJob, int currentJob) {
        return (currentJob >= baseJob) && (currentJob / 100 == baseJob / 100);
    }

    public static boolean is骑士团(int job) {
        return (job >= 1000) && (job < 2000);
    }

    public static boolean is炎术士(int job) {
        return (job >= 1200) && (job < 1212);
    }

    public static boolean is奇袭者(int job) {
        return (job >= 1500) && (job <= 1512);
    }

    public static boolean is风灵使者(int job) {
        return (job >= 1300) && (job <= 1312);
    }

    public static boolean is魂骑士(int job) {
        return (job >= 1100) && (job <= 1112);
    }

    public static boolean is战神(int job) {
        return (job == 2000) || ((job >= 2100) && (job <= 2112));
    }

    public static boolean is龙神(int job) {
        return (job == 2001) || ((job >= 2200) && (job <= 2218));
    }

    public static boolean is双弩精灵(int job) {
        return (job == 2002) || ((job >= 2300) && (job <= 2312));
    }

    public static boolean is幻影(int job) {
        return (job == 2003) || ((job >= 2400) && (job <= 2412));
    }
    
    public static boolean is夜光(int job) {
        return (job == 2004) || ((job >= 2700) && (job <= 2712));
    }
    
    public static boolean is隐月(int job) {
        return job == 2005 || (job >= 2500 && job <= 2512);
    }

    public static boolean is尖兵(int job) {
        return (job == 3002) || ((job >= 3600) && (job <= 3612));
    }

    public static boolean is神之子(int job) {
        return (job == 10000) || ((job >= 10100) && (job <= 10112));
    }

    public static boolean is林之灵(int job) {
        return (job == 11000) || ((job >= 11200) && (job <= 11212));
    }

    public static boolean is恶魔猎手(int job) {
        return (job == 3001) || (job == 3100) || (job == 3110) || (job == 3111) || (job == 3112);
    }

    public static boolean is魔法师(int job) {
        return (job >= 200) && (job <= 232);
    }

    public static boolean is恶魔复仇者(int job) {
        return (job == 3101) || (job == 3120) || (job == 3121) || (job == 3122);
    }

    public static boolean is反抗者(int job) {
        return (job >= 3000) && (job <= 3512);
    }

    public static boolean is冒险家(int job) {
        return (job >= 0) && (job < 550) && (!is龙的传人(job));
    }

    public static boolean is拳手(int job) {
        return (job == 500) || ((job >= 510) && (job <= 512));
    }

    public static boolean is火枪手(int job) {
        return (job == 500) || ((job >= 520) && (job <= 522));
    }

    public static boolean is火炮手(int job) {
        return (job == 501) || ((job >= 530) && (job <= 532));
    }

    public static boolean is龙的传人(int job) {
        return (job == 508) || ((job >= 570) && (job <= 572));
    }

    public static boolean is拳手新(int job) {
        return (job == 509) || ((job >= 580) && (job <= 582));
    }

    public static boolean is火枪手新(int job) {
        return (job == 509) || ((job >= 590) && (job <= 592));
    }

    public static boolean is暗影双刀(int job) {
        return (job >= 430) && (job <= 434);
    }

    public static boolean is英雄(int job) {
        return (job >= 110) && (job <= 112);
    }

    public static boolean is圣骑士(int job) {
        return (job >= 120) && (job <= 122);
    }

    public static boolean is黑骑士(int job) {
        return (job >= 130) && (job <= 132);
    }

    public static boolean is火毒(int job) {
        return (job >= 210) && (job <= 212);
    }

    public static boolean is冰雷(int job) {
        return (job >= 220) && (job <= 222);
    }

    public static boolean is主教(int job) {
        return (job >= 230) && (job <= 232);
    }

    public static boolean is神射手(int job) {
        return (job >= 230) && (job <= 232);
    }

    public static boolean is箭神(int job) {
        return (job >= 230) && (job <= 232);
    }

    public static boolean is隐士(int job) {
        return (job >= 410) && (job <= 412);
    }

    public static boolean is侠盗(int job) {
        return (job >= 420) && (job <= 422);
    }

    public static boolean is船长(int job) {
        return (job >= 520) && (job <= 522);
    }

    public static boolean is冲锋队长(int job) {
        return (job >= 510) && (job <= 512);
    }

    public static boolean is机械师(int job) {
        return (job >= 3500) && (job <= 3512);
    }

    public static boolean is唤灵(int job) {
        return (job >= 3200) && (job <= 3212);
    }

    public static boolean is弩骑(int job) {
        return (job >= 3300) && (job <= 3312);
    }

    public static boolean is米哈尔(int job) {
        return (job == 5000) || ((job >= 5100) && (job <= 5112));
    }
    
    public static boolean is狂龙(int job) {
        return (job == 6000) || ((job >= 6100) && (job <= 6112));
    }

    public static boolean is萌天使(int job) {
        return (job == 6001) || ((job >= 6500) && (job <= 6512));
    }

    public static boolean is萝莉(int job) {
        return (job == 6001) || ((job >= 6500) && (job <= 6512));
    }

    public static boolean isRecoveryIncSkill(int id) {
        switch (id) {
            case 1110000:
            case 1210000:
            case 2000000:
            case 4100002:
            case 4200001:
            case 5700005:
            case 11110000:
                return true;
        }
        return false;
    }

    public static boolean isLinkedAranSkill(int id) {
        return getLinkedAranSkill(id) != id;
    }

    public static int getLinkedAranSkill(int id) {
        switch (id) {
            case 21110007:
            case 21110008:
                return 21110002;
            case 21120009:
            case 21120010:
                return 21120002;
            case 4321001:
                return 4321000;
            case 33101006:
            case 33101007:
                return 33101005;
            case 33101008:
                return 33101004;
            case 35101009:
            case 35101010:
                return 35100008;
            case 35111009:
            case 35111010:
                return 35111001;
            case 35121013:
                return 35111004;
            case 35121011:
                return 35121009;
            case 32001008:
            case 32001009:
            case 32001010:
            case 32001011:
                return 32001001;
            case 5300007:
                return 5301001;
            case 5320011:
                return 5321004;
            case 5710012:
                return 5711002;
            case 23101007:
                return 23101001;
            case 23111009:
            case 23111010:
                return 23111008;
            case 31001006:
            case 31001007:
            case 31001008:
                return 31000004;
            case 24111008:
                return 24111006;
            case 24121010:
                return 24121003;
            case 27121201:
                return 27120211;
        }

        return id;
    }

    public static boolean isForceIncrease(int skillid) {
        switch (skillid) {
            case 30010166:
            case 30011167:
            case 30011168:
            case 30011169:
            case 30011170:
            case 31000004:
            case 31001006:
            case 31001007:
            case 31001008:
                return true;
        }
        return false;
    }

    public static int getBOF_ForJob(int job) {
        return PlayerStats.getSkillByJob(12, job);
    }

    public static int getEmpress_ForJob(int job) {
        return PlayerStats.getSkillByJob(73, job);
    }

    public static boolean isElementAmp_Skill(int skill) {
        switch (skill) {
            case 2110001:
            case 2210001:
            case 12110001:
            case 22150000:
                return true;
        }
        return false;
    }

    public static int getMPEaterForJob(int job) {
        switch (job) {
            case 210:
            case 211:
            case 212:
                return 2100000;
            case 220:
            case 221:
            case 222:
                return 2200000;
            case 230:
            case 231:
            case 232:
                return 2300000;
            case 213:
            case 214:
            case 215:
            case 216:
            case 217:
            case 218:
            case 219:
            case 223:
            case 224:
            case 225:
            case 226:
            case 227:
            case 228:
            case 229:
        }
        return 2100000;
    }

    public static int getJobShortValue(int job) {
        if (job >= 1000) {
            job -= job / 1000 * 1000;
        }
        job /= 100;
        if (job == 4) {
            job *= 2;
        } else if (job == 3) {
            job++;
        } else if (job == 5) {
            job += 11;
        }
        return job;
    }

    public static boolean 尖兵技能(int skill) {
        boolean mm = false;
        if ((skill >= 36000000) && (skill < 36130000)) {
            mm = true;
        }
        return mm;
    }

    public static boolean 魂骑士技能(int skill) {
        boolean mm = false;
        if ((skill >= 11000000) && (skill < 11130000)) {
            mm = true;
        }
        return mm;
    }

    public static boolean 战神技能(int skill) {
        boolean mm = false;
        if ((skill >= 21000000) && (skill < 21130000)) {
            mm = true;
        }
        return mm;
    }

    public static boolean 唤灵技能(int skill) {
        boolean mm = false;
        if ((skill >= 32000000) && (skill < 32130000)) {
            mm = true;
        }
        return mm;
    }

    public static boolean 风灵技能(int skill) {
        boolean mm = false;
        if ((skill >= 13000000) && (skill < 13130000)) {
            mm = true;
        }
        return mm;
    }

    public static boolean 狂龙技能(int skill) {
        boolean mm = false;
        if ((skill >= 61000000) && (skill < 61130000)) {
            mm = true;
        }
        return mm;
    }

    public static int 林之灵多模式连接技能(int skill) {
        int mm = 1;
        switch (skill) {
            case 112000000:
                mm = 110001501;
                break;
            case 112100000:
                mm = 110001502;
                break;
            case 112111003:
                mm = 110001503;
                break;
            case 112120000:
                mm = 110001504;
        }
        return mm;
    }

    public static int 尖兵多模式连接技能(int skill) {
        int mm = 1;
        switch (skill) {
            case 36101008:
            case 36101009:
                mm = 36101000;
                break;
            case 36111009:
            case 36111010:
                mm = 36111000;
                break;
            case 36121011:
            case 36121012:
                mm = 36121001;
                break;
            case 36121013:
            case 36121014:
                mm = 36121002;
        }
        return mm;
    }

    public static boolean is尖兵全息力场(int skill) {
        return (skill == 36121002) || (skill == 36121013) || (skill == 36121014);
    }
    public static boolean is召唤傀儡(int skill) {
        return (skill == 4341006);
    }
    public static boolean is灵魂助力(int skill) {
        return (skill == 1301013) || (skill == 1321007);
    }

    public static int is尖兵全息力场类型(int skill) {
        switch (skill) {
            case 36121013:
            case 36121014:
                return 1;
        }
        return 1;
    }

    public static boolean is林之灵模式转换(int skill) {
        return (skill == 110001501) || (skill == 110001502) || (skill == 110001503) || (skill == 110001504);
    }

    public static boolean is风灵绿水晶花(int skill) {
        return (skill == 13111024) || (skill == 13120007);
    }

    public static boolean is风灵狂风肆虐(int skill) {
        return (skill == 13120010) || (skill == 13120003) || (skill == 13110027) || (skill == 13110022) || (skill == 13100027) || (skill == 13100022);
    }

    public static boolean 夜光陨落星辰(int skill) {
        boolean mm = false;
        switch (skill) {
            case 27121201:
            case 27121202:
            case 27121203:
            case 27121204:
            case 27121205:
            case 27121206:
            case 27121207:
            case 27121208:
            case 27121209:
            case 27121210:
            case 27121303:
                mm = true;
        }
        return mm;
    }

    public static boolean 特殊技能(int skill) {
        boolean mm = false;
        switch (skill) {
            case 3121004:
            case 11101120:
            case 11101121:
            case 11101220:
            case 11101221:
            case 11121102:
            case 11121201:
            case 27120211:
            case 27121201:
            case 27121202:
            case 27121203:
            case 27121204:
            case 61001004:
            case 61001005:
            case 61001101:
            case 61110009:
            case 61121116:
                mm = true;
        }

        return mm;
    }

    public static boolean 特殊BUFF(int skillid) {
        switch (skillid) {
            case -2022746:
            case -2022125:
            case 1101013:
            case 1121054:
            case 1211010:
            case 1211014:
            case 1221015:
            case 1221054:
            case 1321015:
            case 1321053:
            case 1321054:
            case 2121054:
            case 2201009:
            case 2221054:
            case 2321054:
            case 3101004:
            case 3101009:
            case 3111011:
            case 3201004:
            case 3211012:
            case 3221054:
            case 4121053:
            case 4121054:
            case 4341052:
            case 4341053:
            case 5111007:
            case 5120012:
            case 5120014:
            case 5121053:
            case 5211007:
            case 5220014:
            case 5221018:
            case 5221054:
            case 5311005:
            case 5321053:
            case 5721054:
            case 11001021:
            case 11101023:
            case 11121006:
            case 11121053:
            case 11121054:
            case 13101024:
            case 13111023:
            case 13120007:
            case 13120008:
            case 13121004:
            case 13121053:
            case 15111011:
            case 15121053:
            case 15121054:
            case 20040216:
            case 20040217:
            case 20040219:
            case 21121053:
            case 21121054:
            case 22171052:
            case 23121053:
            case 23121054:
            case 24121053:
            case 24121054:
            case 27121053:
            case 31121053:
            case 31121054:
            case 31201003:
            case 31211003:
            case 31211004:
            case 31221004:
            case 31221053:
            case 31221054:
            case 32001003:
            case 32101002:
            case 32101003:
            case 32110000:
            case 32110007:
            case 32110008:
            case 32110009:
            case 32111012:
            case 32120000:
            case 32120001:
            case 32120013:
            case 32120014:
            case 32120015:
            case 32121053:
            case 32121056:
            case 33101005:
            case 33111007:
            case 33121013:
            case 33121053:
            case 33121054:
            case 35001002:
            case 35111013:
            case 35120000:
            case 35120014:
            case 35121053:
            case 51101004:
            case 51111004:
            case 51121053:
            case 60001216:
            case 60001217:
            case 60011219:
            case 61101004:
            case 61111008:
            case 61120007:
            case 61120008:
            case 61121053:
            case 61121054:
            case 65121053:
            case 65121054:
            case 80000052:
            case 80000053:
            case 80000054:
            case 80000086:
            case 80001242:
            case 80001262:
            case 100000276:
            case 100000277:
            case 100001263:
            case 100001264:
            case 100001268:
            case 100001272:
            case 100001274:
                return true;
        }
        return false;
    }

    public static boolean isPyramidSkill(int skill) {
        return (is新手职业(skill / 10000)) && (skill % 10000 == 1020);
    }

    public static boolean isInflationSkill(int skill) {
        return (is新手职业(skill / 10000)) && (skill % 10000 == 1092);
    }

    public static boolean isMulungSkill(int skill) {
        return (is新手职业(skill / 10000)) && ((skill % 10000 == 1009) || (skill % 10000 == 1010) || (skill % 10000 == 1011));
    }

    public static boolean isIceKnightSkill(int skill) {
        return (is新手职业(skill / 10000)) && ((skill % 10000 == 1098) || (skill % 10000 == 99) || (skill % 10000 == 100) || (skill % 10000 == 103) || (skill % 10000 == 104) || (skill % 10000 == 1105));
    }

    //各职业回城技能
    public static boolean isTownSkill(final int skill) {
        switch (skill) {
            case 1281: //maple island
            case 10001245: //ereve
            case 20021110: //elluel
            case 20031203: //lumiere
            case 30021235: //veritas
            case 60011220: //pantheon
            case 100001262: //zero temple
            case 110001514: //arboren ferry
                return true;
        }
        return false;
    }
    
    public static boolean isThrowingStar(int itemId) {
        return itemId / 10000 == 207;
    }

    public static boolean isBullet(int itemId) {
        return itemId / 10000 == 233;
    }

    public static boolean isRechargable(int itemId) {
        return (isThrowingStar(itemId)) || (isBullet(itemId));
    }

    public static boolean isOverall(int itemId) {
        return itemId / 10000 == 105;
    }

    public static boolean isPet(int itemId) {
        return itemId / 10000 == 500;
    }

    public static boolean isArrowForCrossBow(int itemId) {
        return (itemId >= 2061000) && (itemId < 2062000);
    }

    public static boolean isArrowForBow(int itemId) {
        return (itemId >= 2060000) && (itemId < 2061000);
    }

    public static boolean isMagicWeapon(int itemId) {
        int s = itemId / 10000;
        return (s == 137) || (s == 138);
    }

    public static boolean isWeapon(int itemId) {
        return (itemId >= 1212000) && (itemId < 1590000);
    }

    public static MapleInventoryType getInventoryType(int itemId) {
        byte type = (byte) (itemId / 1000000);
        if ((type < 1) || (type > 5)) {
            return MapleInventoryType.UNDEFINED;
        }
        return MapleInventoryType.getByType(type);
    }

    public static MapleWeaponType getWeaponType(int itemId) {
        int cat = itemId / 10000;
        cat %= 100;
        switch (cat) {
            case 30:
                return MapleWeaponType.SWORD1H;
            case 31:
                return MapleWeaponType.AXE1H;
            case 32:
                return MapleWeaponType.BLUNT1H;
            case 33:
                return MapleWeaponType.DAGGER;
            case 34:
                return MapleWeaponType.KATARA;
            case 35:
                return MapleWeaponType.MAGIC_ARROW;
            case 37:
                return MapleWeaponType.WAND;
            case 38:
                return MapleWeaponType.STAFF;
            case 40:
                return MapleWeaponType.SWORD2H;
            case 41:
                return MapleWeaponType.AXE2H;
            case 42:
                return MapleWeaponType.BLUNT2H;
            case 43:
                return MapleWeaponType.SPEAR;
            case 44:
                return MapleWeaponType.POLE_ARM;
            case 45:
                return MapleWeaponType.BOW;
            case 46:
                return MapleWeaponType.CROSSBOW;
            case 47:
                return MapleWeaponType.CLAW;
            case 48:
                return MapleWeaponType.KNUCKLE;
            case 49:
                return MapleWeaponType.GUN;
            case 52:
                return MapleWeaponType.DUAL_BOW;
            case 53:
                return MapleWeaponType.CANNON;
            case 36:
            case 39:
            case 50:
            case 51:
        }
        return MapleWeaponType.NOT_A_WEAPON;
    }

    public static boolean isShield(int itemId) {
        int cat = itemId / 10000;
        cat %= 100;
        return cat == 9;
    }

    public static boolean isEquip(int itemId) {
        return itemId / 1000000 == 1;
    }

    public static boolean is白医卷轴(int itemId) {
        return itemId / 100 == 20490;
    }

    public static boolean is配饰卷轴(int itemId) {
        return itemId / 100 == 20492;
    }

    public static boolean is突破上限之石(int itemId) {
        return (itemId >= 2614000) && (itemId <= 2614017);
    }

    public static boolean is枫叶卷轴(int itemId) {
        if ((itemId >= 2049105) && (itemId <= 2049110)) {
            return false;
        }
        return (itemId / 100 == 20491) || (itemId == 2040124);
    }

    public static int getChaosNumber(int itemId) {
        return itemId == 2049116 ? 10 : 5;
    }

    public static boolean is强化卷轴(int scrollId) {
        return scrollId / 100 == 20493;
    }

    public static boolean is潜能卷轴(int scrollId) {
        switch (scrollId) {
            case 2049400:
            case 2049401:
            case 2049402:
            case 2049404:
            case 2049405:
            case 2049406:
            case 2049407:
            case 2049408:
            case 2049412:
            case 2049414:
            case 2049415:
            case 2049416:
            case 2049417:
            case 2049420:
            case 2049700:
            case 2049702:
            case 2049703:
            case 2049704:
            case 2049705:
            case 2049709:
            case 2049750:
            case 2049751:
            case 2049752:
            case 2049756:
            case 2049757:
            case 2049758:
            case 2048306:
                return true;
        }
        return (scrollId / 100 == 20494) || (scrollId / 100 == 20497) || (scrollId == 5534000) || (scrollId == 2049405);
    }

    public static boolean isA潜能卷轴(int scrollId) {
        switch (scrollId) {
            case 2049700:
            case 2049702:
            case 2049703:
            case 2049704:
            case 2049705:
                return true;
            case 2049701:
        }
        return false;
    }

    public static boolean isS潜能卷轴(int scrollId) {
        switch (scrollId) {
            case 2049750:
            case 2049751:
            case 2049752:
            case 2049756:
            case 2049757:
            case 2049758:
                return true;
            case 2049753:
            case 2049754:
            case 2049755:
        }
        return false;
    }

    public static int get特殊潜能卷轴成功率(int scrollId) {
        switch (scrollId) {
            case 2049750:
                return 80;
            case 2049751:
                return 60;
            case 2049752:
                return 30;
            case 2049704:
                return 40;
            case 2049705:
                return 50;
            case 2049700:
            case 2049702:
            case 2049703:
            case 2049756:
            case 2049757:
            case 2049758:
                return 100;
        }
        return 1;
    }
    public static boolean is必成卷轴(int scrollId) {
        switch (scrollId) {
            case 2040006:
            case 2040007:
            case 2040303:
            case 2040403:
            case 2040506:
            case 2040507:
            case 2040603:
            case 2040709:
            case 2040710:
            case 2040711:
            case 2040806:
            case 2040903:
            case 2041024:
            case 2041025:
            case 2043003:
            case 2043103:
            case 2043203:
            case 2043303:
            case 2043703:
            case 2043803:
            case 2044003:
            case 2044019:
            case 2044103:
            case 2044203:
            case 2044303:
            case 2044403:
            case 2044503:
            case 2044603:
            case 2044703:
            case 2044815:
            case 2044908:
                return true;
        }

        return false;
    }

    public static boolean is附加潜能附加卷轴(int scrollId) {
        return (scrollId >= 2048305) && (scrollId <= 2048311);
    }

    public static boolean is灵魂卷轴(int scrollId) {
        return (scrollId == 2590000) || (scrollId <= 2590001);
    }

    public static boolean is灵魂宝珠(int scrollId) {
        return (scrollId >= 2591000) && (scrollId <= 2591009);
    }

    public static short 附加潜能附加卷轴成功率(int scrollId) {
        short 成功率 = 0;
        switch (scrollId) {
            case 2048305:
                成功率 = 70;
                break;
            case 2048306:
            case 2048307:
                成功率 = 100;
                break;
            case 2048308:
            case 2048311:
                成功率 = 50;
                break;
            case 2048309:
            case 2048310:
                成功率 = 60;
        }

        return 成功率;
    }

    public static boolean is特殊卷轴(int scrollId) {
        switch (scrollId) {
            case 2040727:
            case 2041058:
            case 2530000:
            case 2530001:
            case 2531000:
            case 5063100:
            case 5064000:
            case 5064100:
            case 5064200:
            case 5064300:
            case 5064003:
                return true;
        }
        return false;
    }

    public static boolean isTwoHanded(int itemId) {
        return isTwoHanded(itemId, 0);
    }

    public static boolean isTwoHanded(int itemId, int job) {
        switch (itemId) {
            case 1:
                return (job < 570) || (job > 572);
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
            case 11:
                return true;
        }
        return false;
    }

    public static boolean isTownScroll(int id) {
        return (id >= 2030000) && (id < 2040000);
    }

    public static boolean isUpgradeScroll(int id) {
        return (id >= 2040000) && (id < 2050000);
    }

    public static boolean isGun(int id) {
        return (id >= 1492000) && (id < 1500000);
    }

    public static boolean isUse(int id) {
        return (id >= 2000000) && (id < 3000000);
    }

    public static boolean isSummonSack(int id) {
        return id / 10000 == 210;
    }

    public static boolean isMonsterCard(int id) {
        return id / 10000 == 238;
    }

    public static boolean isSpecialCard(int id) {
        return id / 1000 >= 2388;
    }

    public static int getCardShortId(int id) {
        return id % 10000;
    }

    public static boolean isGem(int id) {
        return (id >= 4250000) && (id <= 4251402);
    }

    public static boolean isOtherGem(int id) {
        switch (id) {
            case 1032062:
            case 1142156:
            case 1142157:
            case 2040727:
            case 2041058:
            case 4001174:
            case 4001175:
            case 4001176:
            case 4001177:
            case 4001178:
            case 4001179:
            case 4001180:
            case 4001181:
            case 4001182:
            case 4001183:
            case 4001184:
            case 4001185:
            case 4001186:
            case 4031980:
            case 4032312:
            case 4032334:
                return true;
        }
        return false;
    }

    public static boolean isCustomQuest(int id) {
        return id > 99999;
    }

    public static int getTaxAmount(int meso) {
        if (meso >= 100000000) {
            return (int) Math.round(0.06D * meso);
        }
        if (meso >= 25000000) {
            return (int) Math.round(0.05D * meso);
        }
        if (meso >= 10000000) {
            return (int) Math.round(0.04D * meso);
        }
        if (meso >= 5000000) {
            return (int) Math.round(0.03D * meso);
        }
        if (meso >= 1000000) {
            return (int) Math.round(0.018D * meso);
        }
        if (meso >= 100000) {
            return (int) Math.round(0.008D * meso);
        }
        return 0;
    }

    public static long EntrustedStoreTax(long meso) {
        if (meso >= 100000000L) {
            return Math.round(0.03D * meso);
        }
        if (meso >= 25000000L) {
            return Math.round(0.025D * meso);
        }
        if (meso >= 10000000L) {
            return Math.round(0.02D * meso);
        }
        if (meso >= 5000000L) {
            return Math.round(0.015D * meso);
        }
        if (meso >= 1000000L) {
            return Math.round(0.008999999999999999D * meso);
        }
        if (meso >= 100000L) {
            return Math.round(0.004D * meso);
        }
        return 0L;
    }

    public static int getAttackDelay(int id, Skill skill) {
        switch (id) {
            case 3121004:
            case 5901006:
            case 5921004:
            case 13111002:
            case 23121000:
            case 33121009:
            case 35111004:
            case 35121005:
            case 35121013:
                return 40;
            case 4111010:
            case 5921007:
                return 99;
            case 0:
                return 570;
        }
        if ((skill != null) && (skill.getSkillType() == 3)) {
            return 0;
        }
        if ((skill != null) && (skill.getDelay() > 0) && (!isNoDelaySkill(id))) {
            return skill.getDelay();
        }

        return 330;
    }

    public static boolean 神奇魔方(int itemId) {
        switch (itemId) {
            case 5062000:
            case 5062001:
            case 5062002:
            case 5062100:
            case 5062102:
            case 5066000:
            case 5066001:
            case 5750000:
                return true;
        }
        return false;
    }

    public static boolean isNoticeItem(int itemId) {
        switch (itemId) {
            case 4020013:
            case 4021011:
            case 4021012:
            case 4021019:
            case 4021020:
            case 4021021:
            case 4021022:
            case 4310015:
                return true;
        }
        return false;
    }

    public static byte gachaponRareItem(int id) {
        switch (id) {
            case 1002776:
            case 1002777:
            case 1002778:
            case 1002779:
            case 1002780:
            case 1002790:
            case 1002791:
            case 1002792:
            case 1002793:
            case 1002794:
            case 1003280:
            case 1003281:
            case 1003282:
            case 1003283:
            case 1003284:
            case 1032031:
            case 1032084:
            case 1052155:
            case 1052156:
            case 1052157:
            case 1052158:
            case 1052159:
            case 1052160:
            case 1052161:
            case 1052162:
            case 1052163:
            case 1052164:
            case 1052374:
            case 1052375:
            case 1052376:
            case 1052377:
            case 1052378:
            case 1072355:
            case 1072356:
            case 1072357:
            case 1072358:
            case 1072359:
            case 1072361:
            case 1072362:
            case 1072363:
            case 1072364:
            case 1072365:
            case 1072544:
            case 1072545:
            case 1072546:
            case 1072547:
            case 1072548:
            case 1082234:
            case 1082235:
            case 1082236:
            case 1082237:
            case 1082238:
            case 1082239:
            case 1082240:
            case 1082241:
            case 1082242:
            case 1082243:
            case 1082328:
            case 1082329:
            case 1082330:
            case 1082331:
            case 1082332:
            case 1092057:
            case 1092058:
            case 1092059:
            case 1092074:
            case 1092079:
            case 1092084:
            case 1092087:
            case 1092088:
            case 1102172:
            case 1112439:
            case 1122011:
            case 1122012:
            case 1122085:
            case 1132012:
            case 1132013:
            case 1132040:
            case 1302081:
            case 1302086:
            case 1302147:
            case 1302173:
            case 1312037:
            case 1312038:
            case 1312062:
            case 1312072:
            case 1322060:
            case 1322061:
            case 1322090:
            case 1322107:
            case 1332073:
            case 1332074:
            case 1332075:
            case 1332076:
            case 1332120:
            case 1332125:
            case 1332148:
            case 1332149:
            case 1342011:
            case 1342012:
            case 1342033:
            case 1342040:
            case 1372044:
            case 1372045:
            case 1372078:
            case 1372100:
            case 1382057:
            case 1382059:
            case 1382099:
            case 1382124:
            case 1402037:
            case 1402046:
            case 1402047:
            case 1402090:
            case 1402111:
            case 1412033:
            case 1412034:
            case 1412062:
            case 1412071:
            case 1422037:
            case 1422038:
            case 1422063:
            case 1422073:
            case 1432047:
            case 1432049:
            case 1432081:
            case 1432099:
            case 1442063:
            case 1442067:
            case 1442111:
            case 1442136:
            case 1452057:
            case 1452059:
            case 1452106:
            case 1452129:
            case 1462050:
            case 1462051:
            case 1462091:
            case 1462118:
            case 1472068:
            case 1472071:
            case 1472117:
            case 1472141:
            case 1482023:
            case 1482024:
            case 1482079:
            case 1482102:
            case 1492023:
            case 1492025:
            case 1492079:
            case 1492101:
            case 1522015:
            case 1522016:
            case 1522020:
            case 1532015:
            case 1532016:
            case 1532037:
            case 1942002:
            case 1942004:
            case 1952002:
            case 1952004:
            case 1962002:
            case 1962004:
            case 1972002:
            case 1972004:
            case 2040006:
            case 2040007:
            case 2040303:
            case 2040403:
            case 2040506:
            case 2040507:
            case 2040603:
            case 2040709:
            case 2040710:
            case 2040711:
            case 2040806:
            case 2040903:
            case 2041024:
            case 2041025:
            case 2043003:
            case 2043103:
            case 2043203:
            case 2043303:
            case 2043703:
            case 2043803:
            case 2044003:
            case 2044019:
            case 2044103:
            case 2044203:
            case 2044303:
            case 2044403:
            case 2044503:
            case 2044603:
            case 2044703:
            case 2044815:
            case 2044908:
            case 2049000:
            case 2049001:
            case 2049002:
            case 2049100:
            case 2290096:
            case 2340000:
                return 2;
        }

        return 1;
    }

    public static boolean isReverseItem(int itemId) {
        switch (itemId) {
            case 1002790:
            case 1002791:
            case 1002792:
            case 1002793:
            case 1002794:
            case 1052160:
            case 1052161:
            case 1052162:
            case 1052163:
            case 1052164:
            case 1072361:
            case 1072362:
            case 1072363:
            case 1072364:
            case 1072365:
            case 1082239:
            case 1082240:
            case 1082241:
            case 1082242:
            case 1082243:
            case 1302086:
            case 1312038:
            case 1322061:
            case 1332075:
            case 1332076:
            case 1342012:
            case 1372045:
            case 1382059:
            case 1402047:
            case 1412034:
            case 1422038:
            case 1432049:
            case 1442067:
            case 1452059:
            case 1462051:
            case 1472071:
            case 1482024:
            case 1492025:
            case 1522016:
            case 1532016:
            case 1942002:
            case 1952002:
            case 1962002:
            case 1972002:
                return true;
        }
        return false;
    }

    public static boolean isTimelessItem(int itemId) {
        switch (itemId) {
            case 1002776:
            case 1002777:
            case 1002778:
            case 1002779:
            case 1002780:
            case 1032031:
            case 1052155:
            case 1052156:
            case 1052157:
            case 1052158:
            case 1052159:
            case 1072355:
            case 1072356:
            case 1072357:
            case 1072358:
            case 1072359:
            case 1082234:
            case 1082235:
            case 1082236:
            case 1082237:
            case 1082238:
            case 1092057:
            case 1092058:
            case 1092059:
            case 1102172:
            case 1122011:
            case 1122012:
            case 1302081:
            case 1312037:
            case 1322060:
            case 1332073:
            case 1332074:
            case 1342011:
            case 1372044:
            case 1382057:
            case 1402046:
            case 1412033:
            case 1422037:
            case 1432047:
            case 1442063:
            case 1452057:
            case 1462050:
            case 1472068:
            case 1482023:
            case 1492023:
            case 1522015:
            case 1532015:
                return true;
        }
        return false;
    }

    public static boolean isRing(int itemId) {
        return (itemId >= 1112000) && (itemId < 1113000);
    }

    public static boolean isEffectRing(int itemid) {
        return (is好友戒指(itemid)) || (is恋人戒指(itemid)) || (is结婚戒指(itemid));
    }

    public static boolean is结婚戒指(int itemId) {
        switch (itemId) {
            case 1112804:
                return true;
        }
        return false;
    }

    public static boolean is好友戒指(int itemId) {
        switch (itemId) {
            case 1049000:
            case 1112800:
            case 1112801:
            case 1112802:
            case 1112810:
            case 1112811:
            case 1112812:
            case 1112817:
                return true;
        }
        return false;
    }

    public static boolean is恋人戒指(int itemId) {
        switch (itemId) {
            case 1048000:
            case 1048001:
            case 1048002:
            case 1112001:
            case 1112002:
            case 1112003:
            case 1112005:
            case 1112006:
            case 1112007:
            case 1112012:
            case 1112013:
            case 1112015:
            case 1112816:
            case 1112820:
                return true;
        }
        return false;
    }

    public static int Equipment_Bonus_EXP(int itemid) {
        switch (itemid) {
            case 1122017:
                return 10;
        }
        return 0;
    }

    public static int getExpForLevel(int i, int itemId) {
        if (isReverseItem(itemId)) {
            return getReverseRequiredEXP(i);
        }
        if (getMaxLevel(itemId) > 0) {
            return getTimelessRequiredEXP(i);
        }
        return 0;
    }

    public static int getMaxLevel(int itemId) {
        Map inc = MapleItemInformationProvider.getInstance().getEquipIncrements(itemId);
        return inc != null ? inc.size() : 0;
    }

    public static int getStatChance() {
        return 25;
    }

    public static MonsterStatus getStatFromWeapon(int itemid) {
        switch (itemid) {
            case 1302109:
            case 1312041:
            case 1322067:
            case 1332083:
            case 1372048:
            case 1382064:
            case 1402055:
            case 1412037:
            case 1422041:
            case 1432052:
            case 1442073:
            case 1452064:
            case 1462058:
            case 1472079:
            case 1482035:
                return MonsterStatus.恐慌;
            case 1302108:
            case 1312040:
            case 1322066:
            case 1332082:
            case 1372047:
            case 1382063:
            case 1402054:
            case 1412036:
            case 1422040:
            case 1432051:
            case 1442072:
            case 1452063:
            case 1462057:
            case 1472078:
            case 1482036:
                return MonsterStatus.速度;
        }
        return null;
    }

    public static int getXForStat(MonsterStatus stat) {
        switch (stat) {
            case 恐慌:
                return -70;
            case 速度:
                return -50;
        }
        return 0;
    }

    public static int getSkillForStat(MonsterStatus stat) {
        switch (stat) {
            case 恐慌:
                return 1111003;
            case 速度:
                return 3121007;
        }
        return 0;
    }

    public static int getSkillBook(int job) {
        if ((job >= 2210) && (job <= 2218)) {
            return job - 2209;
        }
        switch (job) {
            case 110:
            case 120:
            case 130:
            case 210:
            case 220:
            case 230:
            case 310:
            case 320:
            case 410:
            case 420:
            case 430:
            case 510:
            case 520:
            case 530:
            case 1110:
            case 1310:
            case 1510:
            case 2110:
            case 2310:
            case 2410:
            case 2710:
            case 3110:
            case 3120:
            case 3210:
            case 3310:
            case 3510:
            case 3610:
            case 5110:
            case 6110:
            case 6510:
                return 1;
            case 111:
            case 121:
            case 131:
            case 211:
            case 221:
            case 231:
            case 311:
            case 321:
            case 411:
            case 421:
            case 431:
            case 511:
            case 521:
            case 531:
            case 1111:
            case 1311:
            case 1511:
            case 2111:
            case 2311:
            case 2411:
            case 2711:
            case 3111:
            case 3121:
            case 3211:
            case 3311:
            case 3511:
            case 3611:
            case 5111:
            case 6111:
            case 6511:
                return 2;
            case 112:
            case 122:
            case 132:
            case 212:
            case 222:
            case 232:
            case 312:
            case 322:
            case 412:
            case 422:
            case 432:
            case 512:
            case 522:
            case 532:
            case 1112:
            case 1312:
            case 1512:
            case 2112:
            case 2312:
            case 2412:
            case 2712:
            case 3112:
            case 3122:
            case 3212:
            case 3312:
            case 3512:
            case 3612:
            case 5112:
            case 6112:
            case 6512:
                return 3;
            case 433:
                return 4;
            case 434:
                return 5;
            case 10110:
            case 10111:
            case 10112:
                return 1;
        }
        return 0;
    }

    public static int getSkillBook(int job, int level) {
        if ((job >= 2210) && (job <= 2218)) {
            return job - 2209;
        }
        if (is暗影双刀(job)) {
            return level >= 20 ? 1 : level >= 30 ? 2 : level >= 45 ? 3 : level >= 60 ? 4 : level >= 100 ? 5 : 0;
        }
        switch (job) {
            case 1100:
            case 1110:
            case 1111:
            case 1112:
            case 1300:
            case 1310:
            case 1311:
            case 1312:
            case 1500:
            case 1510:
            case 1511:
            case 1512:
            case 2100:
            case 2110:
            case 2111:
            case 2112:
            case 2300:
            case 2310:
            case 2311:
            case 2312:
            case 2400:
            case 2410:
            case 2411:
            case 2412:
            case 2700:
            case 2710:
            case 2711:
            case 2712:
            case 3100:
            case 3101:
            case 3110:
            case 3111:
            case 3112:
            case 3120:
            case 3121:
            case 3122:
            case 3200:
            case 3210:
            case 3211:
            case 3212:
            case 3300:
            case 3310:
            case 3311:
            case 3312:
            case 3500:
            case 3510:
            case 3511:
            case 3512:
            case 3600:
            case 3610:
            case 3611:
            case 3612:
            case 5100:
            case 5110:
            case 5111:
            case 5112:
            case 6000:
            case 6001:
            case 6100:
            case 6110:
            case 6111:
            case 6112:
            case 6500:
            case 6510:
            case 6511:
            case 6512:
            case 10100:
            case 10110:
            case 10111:
            case 10112:
                return level <= 30 ? 0 : (level >= 31) && (level <= 60) ? 1 : (level >= 61) && (level <= 100) ? 2 : level >= 100 ? 3 : 0;
        }
        if ((is冒险家(job)) && (!is龙的传人(job))) {
            return level <= 30 ? 0 : (level >= 31) && (level <= 60) ? 1 : (level >= 61) && (level <= 100) ? 2 : level >= 100 ? 3 : 0;
        }
        return 0;
    }

    public static int getSkillBookForSkill(int skillid) {
        return getSkillBook(skillid / 10000);
    }

    public static int getLinkedMountItem(int sourceid) {
        switch (sourceid % 1000) {
            case 1:
            case 24:
            case 25:
                return 1018;
            case 2:
            case 26:
                return 1019;
            case 3:
                return 1025;
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
                return sourceid % 1000 + 1023;
            case 9:
            case 10:
            case 11:
                return sourceid % 1000 + 1024;
            case 12:
                return 1042;
            case 13:
                return 1044;
            case 14:
                return 1049;
            case 15:
            case 16:
            case 17:
                return sourceid % 1000 + 1036;
            case 18:
            case 19:
                return sourceid % 1000 + 1045;
            case 20:
                return 1072;
            case 21:
                return 1084;
            case 22:
                return 1089;
            case 23:
                return 1106;
            case 29:
                return 1151;
            case 30:
            case 50:
                return 1054;
            case 31:
            case 51:
                return 1069;
            case 32:
                return 1138;
            case 45:
            case 46:
            case 47:
            case 48:
            case 49:
                return sourceid % 1000 + 1009;
            case 52:
                return 1070;
            case 53:
                return 1071;
            case 54:
                return 1096;
            case 55:
                return 1101;
            case 56:
                return 1102;
            case 58:
                return 1118;
            case 59:
                return 1121;
            case 60:
                return 1122;
            case 61:
                return 1129;
            case 62:
                return 1139;
            case 63:
            case 64:
            case 65:
            case 66:
            case 67:
            case 68:
            case 69:
            case 70:
            case 71:
            case 72:
            case 73:
            case 74:
            case 75:
            case 76:
            case 77:
            case 78:
                return sourceid % 1000 + 1080;
            case 85:
            case 86:
            case 87:
                return sourceid % 1000 + 928;
            case 88:
                return 1065;
            case 27:
                return 1932049;
            case 28:
                return 1932050;
            case 114:
                return 1932099;
            case 33:
            case 34:
            case 35:
            case 36:
            case 37:
            case 38:
            case 39:
            case 40:
            case 41:
            case 42:
            case 43:
            case 44:
            case 57:
            case 79:
            case 80:
            case 81:
            case 82:
            case 83:
            case 84:
            case 89:
            case 90:
            case 91:
            case 92:
            case 93:
            case 94:
            case 95:
            case 96:
            case 97:
            case 98:
            case 99:
            case 100:
            case 101:
            case 102:
            case 103:
            case 104:
            case 105:
            case 106:
            case 107:
            case 108:
            case 109:
            case 110:
            case 111:
            case 112:
            case 113:
        }
        return 0;
    }

    public static int getMountItem(int sourceid, MapleCharacter chr) {
        switch (sourceid) {
            case 5921006:
                return 1932000;
            case 33001001:
                if (chr == null) {
                    return 1932015;
                }
                switch (chr.getIntNoRecord(111112)) {
                    case 20:
                        return 1932030;
                    case 30:
                        return 1932031;
                    case 40:
                        return 1932032;
                    case 50:
                        return 1932033;
                    case 60:
                        return 1932036;
                }
                return 1932015;
            case 35001002:
            case 35120000:
                return 1932016;
            case 30011109:
                return 1932051;
            case 30011159:
                return 1932085;
        }
        if (!is新手职业(sourceid / 10000)) {
            if ((sourceid / 10000 == 8000) && (sourceid != 80001000)) {
                Skill skil = SkillFactory.getSkill(sourceid);
                if ((skil != null) && (skil.getTamingMob() > 0)) {
                    return skil.getTamingMob();
                }
                int link = getLinkedMountItem(sourceid);
                if (link > 0) {
                    if (link < 10000) {
                        return getMountItem(link, chr);
                    }
                    return link;
                }

            }

            return 0;
        }
        switch (sourceid % 10000) {
            case 1013:
            case 1046:
                return 1932001;
            case 1015:
            case 1048:
                return 1932002;
            case 1016:
            case 1017:
            case 1027:
                return 1932007;
            case 1018:
                return 1932003;
            case 1019:
                return 1932005;
            case 1025:
                return 1932006;
            case 1028:
                return 1932008;
            case 1029:
                return 1932009;
            case 1030:
                return 1932011;
            case 1031:
                return 1932010;
            case 1033:
                return 1932013;
            case 1034:
                return 1932014;
            case 1035:
                return 1932012;
            case 1036:
                return 1932017;
            case 1037:
                return 1932018;
            case 1038:
                return 1932019;
            case 1039:
                return 1932020;
            case 1040:
                return 1932021;
            case 1042:
                return 1932022;
            case 1044:
                return 1932023;
            case 1049:
                return 1932025;
            case 1050:
                return 1932004;
            case 1051:
                return 1932026;
            case 1052:
                return 1932027;
            case 1053:
                return 1932028;
            case 1054:
                return 1932029;
            case 1063:
                return 1932034;
            case 1064:
                return 1932035;
            case 1065:
                return 1932037;
            case 1069:
                return 1932038;
            case 1070:
                return 1932039;
            case 1071:
                return 1932040;
            case 1072:
                return 1932041;
            case 1084:
                return 1932043;
            case 1089:
                return 1932044;
            case 1096:
                return 1932045;
            case 1101:
                return 1932046;
            case 1102:
                return 1932047;
            case 1106:
                return 1932048;
            case 1118:
                return 1932060;
            case 1115:
                return 1932052;
            case 1121:
                return 1932063;
            case 1122:
                return 1932064;
            case 1123:
                return 1932065;
            case 1128:
                return 1932066;
            case 1130:
                return 1932072;
            case 1136:
                return 1932078;
            case 1138:
                return 1932080;
            case 1139:
                return 1932081;
            case 1143:
            case 1144:
            case 1145:
            case 1146:
            case 1147:
            case 1148:
            case 1149:
            case 1150:
            case 1151:
            case 1152:
            case 1153:
            case 1154:
            case 1155:
            case 1156:
            case 1157:
                return 1992000 + sourceid % 10000 - 1143;
            case 1014:
            case 1020:
            case 1021:
            case 1022:
            case 1023:
            case 1024:
            case 1026:
            case 1032:
            case 1041:
            case 1043:
            case 1045:
            case 1047:
            case 1055:
            case 1056:
            case 1057:
            case 1058:
            case 1059:
            case 1060:
            case 1061:
            case 1062:
            case 1066:
            case 1067:
            case 1068:
            case 1073:
            case 1074:
            case 1075:
            case 1076:
            case 1077:
            case 1078:
            case 1079:
            case 1080:
            case 1081:
            case 1082:
            case 1083:
            case 1085:
            case 1086:
            case 1087:
            case 1088:
            case 1090:
            case 1091:
            case 1092:
            case 1093:
            case 1094:
            case 1095:
            case 1097:
            case 1098:
            case 1099:
            case 1100:
            case 1103:
            case 1104:
            case 1105:
            case 1107:
            case 1108:
            case 1109:
            case 1110:
            case 1111:
            case 1112:
            case 1113:
            case 1114:
            case 1116:
            case 1117:
            case 1119:
            case 1120:
            case 1124:
            case 1125:
            case 1126:
            case 1127:
            case 1129:
            case 1131:
            case 1132:
            case 1133:
            case 1134:
            case 1135:
            case 1137:
            case 1140:
            case 1141:
            case 1142:
        }
        return 0;
    }

    public static boolean is双刀副手(int itemId) {
        return itemId / 10000 == 134;
    }

    public static boolean is双刀主手(int itemId) {
        return itemId / 10000 == 133;
    }

    public static boolean is幻影卡片(int itemId) {
        return (itemId >= 1352100) && (itemId <= 1352107);
    }

    public static boolean is龙传宝盒(int itemId) {
        return (itemId >= 1352300) && (itemId <= 1352304);
    }

    public static boolean is米哈尔盾(int itemId) {
        return (itemId >= 1098000) && (itemId <= 1098003);
    }

    public static boolean is恶魔猎手盾(int itemId) {
        return (itemId >= 1099000) && (itemId <= 1099009);
    }

    public static boolean is灵魂盾(int itemId) {
        return (itemId >= 1098000) && (itemId <= 1098003);
    }

    public static boolean is诺巴精髓(int itemId) {
        return (itemId >= 1352500) && (itemId <= 1352504);
    }

    public static boolean is灵魂手镯(int itemId) {
        return (itemId >= 1352600) && (itemId <= 1352604);
    }

    public static boolean is控制器(int itemId) {
        return (itemId >= 1353000) && (itemId <= 1353004);
    }

    public static boolean is狂龙巨龙纹章(int itemId) {
        return (itemId == 1190000) || (itemId == 1190001);
    }

    public static boolean is萝莉天使纹章(int itemId) {
        return (itemId == 1190100) || (itemId == 1190101);
    }

    public static boolean is尖兵合金心脏(int itemId) {
        return (itemId == 1190200) || (itemId == 1190201);
    }

    public static boolean is尖兵能量全开触发器(int itemId) {
        return (itemId >= 1672030) && (itemId < 1672032);
    }

    public static boolean is职业特殊装备(int itemid) {
        return (is尖兵合金心脏(itemid)) || (is萝莉天使纹章(itemid)) || (is狂龙巨龙纹章(itemid));
    }

    public static boolean is职业副手装备(int itemid) {
        return (is控制器(itemid)) || (is灵魂手镯(itemid)) || (is诺巴精髓(itemid)) || (is灵魂盾(itemid)) || (is恶魔猎手盾(itemid)) || (is米哈尔盾(itemid)) || (is龙传宝盒(itemid)) || (is幻影卡片(itemid)) || (is双刀副手(itemid));
    }

    public static boolean is图腾(int itemId) {
        boolean is = false;
        if ((itemId >= 1202023) && (itemId <= 1202042)) {
            is = true;
        } else if ((itemId == 1202087) || (itemId == 1202088) || (itemId == 1202062) || (itemId == 1202092) || (itemId == 1202093)) {
            is = true;
        } else if ((itemId >= 1202047) && (itemId <= 1202061)) {
            is = true;
        } else if ((itemId >= 1202083) && (itemId <= 1202086)) {
            is = true;
        } else if ((itemId >= 1202000) && (itemId <= 1202004)) {
            is = true;
        }
        return is;
    }

    public static boolean 能加点技的能(int skil) {
        return ((skil < 90000000) && ((skil % 10000 < 8000) || (skil % 10000 > 8006)) && (!isAngel(skil))) || (skil >= 92000000) || ((skil >= 80000000) && (skil < 80010000));
    }

    public static boolean isApplicableSkill(int skil) {
        return ((skil < 70000000) && ((skil % 10000 < 8000) || (skil % 10000 > 8006)) && (!isAngel(skil))) || (skil >= 92000000) || ((skil >= 80000000) && (skil < 80010000));
    }

    public static boolean isApplicableSkill_(int skil) {
        for (int i : PlayerStats.pvpSkills) {
            if (skil == i) {
                return true;
            }
        }
        return ((skil >= 90000000) && (skil < 92000000)) || ((skil % 10000 >= 8000) && (skil % 10000 <= 8003)) || (isAngel(skil));
    }

    public static boolean is饰品制炼书(int itemId) {
        return itemId / 1000 == 2047;
    }

    public static int get突破上限之石成功率(int itemid) {
        if ((itemid >= 2614000) && (itemid <= 2614005)) {
            return 100;
        }
        if ((itemid >= 2614006) && (itemid <= 2614011)) {
            return 30;
        }
        if ((itemid >= 2614011) && (itemid <= 2614017)) {
            return 50;
        }
        return 0;
    }

    public static int get突破上限之石提升值(int itemid) {
        int mm = 0;
        switch (itemid) {
            case 2614000:
            case 2614003:
            case 2614006:
            case 2614009:
            case 2614012:
            case 2614015:
                mm = 10000;
                break;
            case 2614001:
            case 2614004:
            case 2614007:
            case 2614010:
            case 2614013:
            case 2614016:
                mm = 100000;
                break;
            case 2614002:
            case 2614005:
            case 2614008:
            case 2614011:
            case 2614014:
            case 2614017:
                mm = 1000000;
        }

        return mm;
    }

    public static boolean is周年庆卷轴(int itemId) {
        switch (itemId) {
            case 2043108:
            case 2043208:
            case 2043308:
            case 2043405:
            case 2043708:
            case 2043808:
            case 2044008:
            case 2044108:
            case 2044208:
            case 2046111:
            case 2044308:
            case 2044408:
            case 2044508:
            case 2044608:
            case 2044708:
            case 2044810:
            case 2044905:
            case 2046006:
            case 2046010:
            case 2046007:
            case 2046025:
            case 2046026:
            case 2046106:
            case 2046107:
            case 2046108:
            case 2046109:
            case 2046110:
            case 2046112:
            case 2046213:
            case 2046214:
            case 2046219:
            case 2046008:
            case 2046009:
            case 2046220:
            case 2046308:
            case 2046309:
            case 2046310:
            case 2046011:
            case 2046311:
            case 2046074:
            case 2046075:
            case 2046149:
                return true;
        }
        return false;
    }

    public static int is周年庆卷轴成功率(int itemId) {
        return (itemId == 2046074) || (itemId == 2046075) || (itemId == 2046149) ? 99: (itemId == 2044408) || (itemId == 2044508) || (itemId == 2044608) || (itemId == 2044708) || (itemId == 2044810) || (itemId == 2044905) ? 40 : (itemId == 2043108) || (itemId == 2043208) || (itemId == 2043308) || (itemId == 2043405) || (itemId == 2043708) || (itemId == 2043808) || (itemId == 2044008) || (itemId == 2044108) || (itemId == 2044208) || (itemId == 2044308) || (itemId == 2046111) || (itemId == 2046010)|| (itemId == 2046011)? 100 :  (itemId == 2046109) || (itemId == 2046008) || (itemId == 2046009) || (itemId == 2046219) || (itemId == 2046220) || (itemId == 2046310) || (itemId == 2046311)||(itemId == 2046108) ? 50 : (itemId == 2046308) || (itemId == 2046309) || (itemId == 2046213) || (itemId == 2046214) || (itemId == 2046006) || (itemId == 2046007) || (itemId == 2046025) || (itemId == 2046026) || ((itemId >= 2046106) && (itemId <= 2046107)) ? 20 : 100;
    }

    public static int getSuccessTablet(int scrollId, int level) {
        if (scrollId % 1000 / 100 == 2) {
            switch (level) {
                case 0:
                    return 70;
                case 1:
                    return 55;
                case 2:
                    return 43;
                case 3:
                    return 33;
                case 4:
                    return 26;
                case 5:
                    return 20;
                case 6:
                    return 16;
                case 7:
                    return 12;
                case 8:
                    return 10;
            }
            return 7;
        }
        if (scrollId % 1000 / 100 == 3) {
            switch (level) {
                case 0:
                    return 70;
                case 1:
                    return 35;
                case 2:
                    return 18;
                case 3:
                    return 12;
            }
            return 7;
        }

        switch (level) {
            case 0:
                return 70;
            case 1:
                return 50;
            case 2:
                return 36;
            case 3:
                return 26;
            case 4:
                return 19;
            case 5:
                return 14;
            case 6:
                return 10;
        }
        return 7;
    }

    public static int getCurseTablet(int scrollId, int level) {
        if (scrollId % 1000 / 100 == 2) {
            switch (level) {
                case 0:
                    return 10;
                case 1:
                    return 12;
                case 2:
                    return 16;
                case 3:
                    return 20;
                case 4:
                    return 26;
                case 5:
                    return 33;
                case 6:
                    return 43;
                case 7:
                    return 55;
                case 8:
                    return 70;
            }
            return 100;
        }
        if (scrollId % 1000 / 100 == 3) {
            switch (level) {
                case 0:
                    return 12;
                case 1:
                    return 18;
                case 2:
                    return 35;
                case 3:
                    return 70;
            }
            return 100;
        }

        switch (level) {
            case 0:
                return 10;
            case 1:
                return 14;
            case 2:
                return 19;
            case 3:
                return 26;
            case 4:
                return 36;
            case 5:
                return 50;
            case 6:
                return 70;
        }
        return 100;
    }

    public static boolean isAccessory(int itemId) {
        return ((itemId >= 1010000) && (itemId < 1040000)) || ((itemId >= 1122000) && (itemId < 1153000)) || ((itemId >= 1112000) && (itemId < 1113000));
    }

    public static boolean 加载潜能是否符合潜能等级(int potentialID, int newstate) {
        if (newstate == 23) {
            return potentialID == 60003;
        }
        if (newstate == 22) {
            return potentialID == 60002;
        }
        if (newstate == 21) {
            return potentialID == 60001;
        }
        if (newstate == 20) {
            return potentialID >= 40000;
        }
        if (newstate == 19) {
            return potentialID >= 30000;
        }
        if (newstate == 18) {
            return (potentialID >= 20000) && (potentialID < 30000);
        }
        if (newstate == 17) {
            return (potentialID >= 10000) && (potentialID < 20000);
        }
        return false;
    }

    public static boolean optionTypeFits(int optionType, int itemId) {
        switch (optionType) {
            case 10:
                return isWeapon(itemId);
            case 11:
                return !isWeapon(itemId);
            case 20:
                return itemId / 10000 == 109;
            case 21:
                return itemId / 10000 == 180;
            case 40:
                return isAccessory(itemId);
            case 51:
                return itemId / 10000 == 100;
            case 52:
                return itemId / 10000 == 110;
            case 53:
                return (itemId / 10000 == 104) || (itemId / 10000 == 105) || (itemId / 10000 == 106);
            case 54:
                return itemId / 10000 == 108;
            case 55:
                return itemId / 10000 == 107;
            case 90:
                return false;
        }
        return true;
    }

    public static boolean optionTypeFitsX(int potentialID, int itemId) {
        switch (potentialID) {
            case 30601:
            case 30602:
            case 40601:
            case 40602:
            case 40603:
            case 42601:
            case 42602:
            case 60001:
            case 60003:
                return (isWeapon(itemId)) || (is双刀副手(itemId)) || (is双刀主手(itemId)) || (is幻影卡片(itemId)) || (is龙传宝盒(itemId)) || (is米哈尔盾(itemId)) || (is恶魔猎手盾(itemId)) || (is灵魂盾(itemId)) || (is诺巴精髓(itemId)) || (is灵魂手镯(itemId)) || (is控制器(itemId)) || (is狂龙巨龙纹章(itemId)) || (is萝莉天使纹章(itemId)) || (is尖兵合金心脏(itemId));
            case 60002:
                return false;
        }

        return true;
    }

    public static int getNebuliteGrade(int id) {
        if (id / 10000 != 306) {
            return -1;
        }
        if ((id >= 3060000) && (id < 3061000)) {
            return 0;
        }
        if ((id >= 3061000) && (id < 3062000)) {
            return 1;
        }
        if ((id >= 3062000) && (id < 3063000)) {
            return 2;
        }
        if ((id >= 3063000) && (id < 3064000)) {
            return 3;
        }
        return 4;
    }

    public static boolean isMountItemAvailable(int mountid, int jobid) {
        if ((jobid != 900) && (mountid / 10000 == 190)) {
            switch (mountid) {
                case 1902000:
                case 1902001:
                case 1902002:
                    return is冒险家(jobid);
                case 1902005:
                case 1902006:
                case 1902007:
                    return is骑士团(jobid);
                case 1902015:
                case 1902016:
                case 1902017:
                case 1902018:
                    return is战神(jobid);
                case 1902040:
                case 1902041:
                case 1902042:
                    return is龙神(jobid);
                case 1902003:
                case 1902004:
                case 1902008:
                case 1902009:
                case 1902010:
                case 1902011:
                case 1902012:
                case 1902013:
                case 1902014:
                case 1902019:
                case 1902020:
                case 1902021:
                case 1902022:
                case 1902023:
                case 1902024:
                case 1902025:
                case 1902026:
                case 1902027:
                case 1902028:
                case 1902029:
                case 1902030:
                case 1902031:
                case 1902032:
                case 1902033:
                case 1902034:
                case 1902035:
                case 1902036:
                case 1902037:
                case 1902038:
                case 1902039:
            }
            if (is反抗者(jobid)) {
                return false;
            }
        }

        return mountid / 10000 == 190;
    }

    public static boolean is机甲装备(int itemId) {
        return (itemId >= 1610000) && (itemId < 1660000);
    }

    public static boolean is龙龙装备(int itemId) {
        return (itemId >= 1940000) && (itemId < 1980000);
    }

    public static boolean canScroll(int itemId) {
        return ((itemId / 100000 != 19) && (itemId / 100000 != 16)) || ((itemId >= 1672000) && (itemId <= 1672029) && ((itemId < 1112534) || (itemId > 1112444))) || (is职业特殊装备(itemId)) || (is职业副手装备(itemId));
    }

    public static boolean canHammer(int itemId) {
        switch (itemId) {
            case 1122000:
            case 1122076:
                return false;
        }

        return canScroll(itemId);
    }

    public static int getMasterySkill(int job) {
        if ((job >= 1410) && (job <= 1412)) {
            return 14100000;
        }
        if ((job >= 410) && (job <= 412)) {
            return 4100000;
        }
        if ((job >= 590) && (job <= 592)) {
            return 5900000;
        }
        return 0;
    }

    public static int getExpRate_Below10(int job) {
        if (is龙神(job)) {
            return 30;
        }
        if ((is战神(job)) || (is骑士团(job)) || (is反抗者(job))) {
            return 30;
        }
        return 30;
    }

    public static int getExpRate_Quest(int level) {
        return 1;
    }

    public static String getCashBlockedMsg(int id) {
        switch (id) {
            case 5050000:
            case 5060003:
            case 5072000:
            case 5073000:
            case 5074000:
            case 5076000:
            case 5077000:
            case 5079001:
            case 5079002:
            case 5360000:
            case 5360014:
            case 5360015:
            case 5360016:
            case 5390000:
            case 5390001:
            case 5390002:
            case 5390003:
            case 5390004:
            case 5390005:
            case 5390006:
            case 5390007:
            case 5390008:
            case 5390010:
                return "该道具只能通过NPC购买.";
        }
        return "该道具禁止购买.";
    }

    public static int getCustomReactItem(int rid, int original) {
        if (rid == 2008006) {
            return Calendar.getInstance().get(7) + 4001055;
        }

        return original;
    }

    public static int getJobNumber(int jobz) {
        int job = jobz % 1000;
        if ((job / 100 == 0) || (is新手职业(jobz))) {
            return 0;
        }
        if ((job / 10 % 10 == 0) || (job == 501)) {
            return 1;
        }
        return 2 + job % 10;
    }

    public static boolean is新手职业(int job) {
        return (job == 10000) || (job == 0) || (job == 1) || (job == 1000) || (job == 2000) || (job == 2001) || (job == 2002) || (job == 2003) || (job == 2004) || (job == 3000) || (job == 3001) || (job == 3002) || (job == 5000) || (job == 6000) || (job == 6001);
    }

    public static boolean isForceRespawn(int mapid) {
        switch (mapid) {
            case 103000800:
            case 925100100:
                return true;
        }
        return (mapid / 100000 == 9800) && ((mapid % 10 == 1) || (mapid % 1000 == 100));
    }

    public static int getFishingTime(boolean vip, boolean gm) {
        return gm ? 1000 : vip ? 30000 : 60000;
    }

    public static int getCustomSpawnID(int summoner, int def) {
        switch (summoner) {
            case 9400589:
            case 9400748:
                return 9400706;
        }
        return def;
    }

    public static boolean canForfeit(int questid) {
        switch (questid) {
            case 20000:
            case 20010:
            case 20015:
            case 20020:
                return false;
        }
        return true;
    }

    public static double getAttackRange(MapleStatEffect def, int rangeInc) {
        double defRange = (400.0D + rangeInc) * (400.0D + rangeInc);
        if (def != null) {
            defRange += def.getMaxDistanceSq() + def.getRange() * def.getRange();
        }

        return defRange + 150000.0D;
    }

    public static double getAttackRange(Point lt, Point rb) {
        double defRange = 160000.0D;
        int maxX = Math.max(Math.abs(lt == null ? 0 : lt.x), Math.abs(rb == null ? 0 : rb.x));
        int maxY = Math.max(Math.abs(lt == null ? 0 : lt.y), Math.abs(rb == null ? 0 : rb.y));
        defRange += maxX * maxX + maxY * maxY;

        return defRange + 120000.0D;
    }

    public static boolean is不检测范围(int skillId) {
        return (skillId == 27121100) || (skillId == 23111000) || (skillId == 3101005) || (skillId == 5301001) || (skillId == 5300007) || (skillId == 2221003);
    }

    public static int getLowestPrice(int itemId) {
        switch (itemId) {
            case 2340000:
            case 2530000:
            case 2531000:
                return 50000000;
        }
        return -1;
    }

    public static boolean isNoDelaySkill(int skillId) {
        if (is风灵狂风肆虐(skillId)) {
            return true;
        }
        return (skillId == 5810001) || (skillId == 21101003) || (skillId == 15100004) || (skillId == 33101004) || (skillId == 32111010) || (skillId == 2111007) || (skillId == 2211007) || (skillId == 2311007) || (skillId == 22161005) || (skillId == 12111007) || (skillId == 32121003) || (skillId == 35121005) || (skillId == 35111004) || (skillId == 35121013) || (skillId == 35121003) || (skillId == 22150004) || (skillId == 22181004) || (skillId == 11101002) || (skillId == 13101002) || (skillId == 24100003) || (skillId == 24120002) || (skillId == 24121000);
    }

    public static boolean isNoSpawn(int mapID) {
        return (mapID == 809040100) || (mapID == 925020010) || (mapID == 925020011) || (mapID == 925020012) || (mapID == 925020013) || (mapID == 925020014) || (mapID == 980010000) || (mapID == 980010100) || (mapID == 980010200) || (mapID == 980010300) || (mapID == 980010020);
    }

    public static int getExpRate(int job, int def) {
        return def;
    }

    public static int getModifier(int itemId, int up) {
        if (up <= 0) {
            return 0;
        }
        switch (itemId) {
            case 2022459:
            case 2860179:
            case 2860193:
            case 2860207:
                return 130;
            case 2022460:
            case 2022462:
            case 2022730:
                return 150;
            case 2860181:
            case 2860195:
            case 2860209:
                return 200;
        }
        if (itemId / 10000 == 286) {
            return 150;
        }
        return 200;
    }

    public static short getSlotMax(int itemId) {
        switch (itemId) {
            case 4030003:
            case 4030004:
            case 4030005:
                return 1;
            case 3993000:
            case 3993002:
            case 3993003:
            case 4001168:
            case 4031306:
            case 4031307:
                return 100;
            case 5220010:
            case 5220013:
                return 1000;
            case 5220020:
                return 2000;
        }
        return 0;
    }

    public static boolean isDropRestricted(int itemId) {
        return (itemId == 3012000) || (itemId == 4030004) || (itemId == 1052098) || (itemId == 1052202);
    }

    public static boolean isPickupRestricted(int itemId) {
        return (itemId == 4030003) || (itemId == 4030004);
    }

    public static short getStat(int itemId, int def) {
        switch (itemId) {
            case 1002419:
                return 5;
            case 1002959:
                return 25;
            case 1142002:
                return 10;
            case 1122121:
                return 7;
        }
        return (short) def;
    }

    public static short getHpMp(int itemId, int def) {
        switch (itemId) {
            case 1122121:
                return 500;
            case 1002959:
            case 1142002:
                return 1000;
        }
        return (short) def;
    }

    public static short getATK(int itemId, int def) {
        switch (itemId) {
            case 1122121:
                return 3;
            case 1002959:
                return 4;
            case 1142002:
                return 9;
        }
        return (short) def;
    }

    public static short getDEF(int itemId, int def) {
        switch (itemId) {
            case 1122121:
                return 250;
            case 1002959:
                return 500;
        }
        return (short) def;
    }

    public static boolean isDojo(int mapId) {
        return (mapId >= 925020100) && (mapId <= 925023814);
    }

    public static int getPartyPlayHP(int mobID) {
        switch (mobID) {
            case 4250000:
                return 836000;
            case 4250001:
                return 924000;
            case 5250000:
                return 1100000;
            case 5250001:
                return 1276000;
            case 5250002:
                return 1452000;
            case 9400661:
                return 15000000;
            case 9400660:
                return 30000000;
            case 9400659:
                return 45000000;
            case 9400658:
                return 20000000;
        }
        return 0;
    }

    public static int getPartyPlayEXP(int mobID) {
        switch (mobID) {
            case 4250000:
                return 5770;
            case 4250001:
                return 6160;
            case 5250000:
                return 7100;
            case 5250001:
                return 7975;
            case 5250002:
                return 8800;
            case 9400661:
                return 40000;
            case 9400660:
                return 70000;
            case 9400659:
                return 90000;
            case 9400658:
                return 50000;
        }
        return 0;
    }

    public static int getPartyPlay(int mapId) {
        switch (mapId) {
            case 300010000:
            case 300010100:
            case 300010200:
            case 300010300:
            case 300010400:
            case 300020000:
            case 300020100:
            case 300020200:
            case 300030000:
            case 683070400:
            case 683070401:
            case 683070402:
                return 25;
        }
        return 0;
    }

    public static int getPartyPlay(int mapId, int def) {
        int dd = getPartyPlay(mapId);
        if (dd > 0) {
            return dd;
        }
        return def / 2;
    }

    public static boolean isHyperTeleMap(int mapId) {
        for (int i : hyperTele) {
            if (i == mapId) {
                return true;
            }
        }
        return false;
    }

    public static int getCurrentDate() {
        String time = FileoutputUtil.CurrentReadable_Time();
        return Integer.parseInt(time.substring(0, 4) + time.substring(5, 7) + time.substring(8, 10) + time.substring(11, 13));
    }

    public static int getCurrentDate_NoTime() {
        String time = FileoutputUtil.CurrentReadable_Time();
        return Integer.parseInt(time.substring(0, 4) + time.substring(5, 7) + time.substring(8, 10));
    }

    public static void achievementRatio(MapleClient c) {
        switch (c.getPlayer().getMapId()) {
            case 240080600:
            case 910010000:
            case 910340100:
            case 920010000:
            case 921120005:
            case 921160100:
            case 922010100:
            case 923040100:
            case 925100000:
            case 926100000:
            case 926110000:
            case 930000000:
            case 930000100:
            case 932000100:
                c.getSession().write(MaplePacketCreator.achievementRatio(0));
                break;
            case 921160200:
            case 922010200:
            case 922010300:
            case 922010400:
            case 922010401:
            case 922010402:
            case 922010403:
            case 922010404:
            case 922010405:
            case 925100100:
            case 926100001:
            case 926110001:
            case 930000200:
                c.getSession().write(MaplePacketCreator.achievementRatio(10));
                break;
            case 910340200:
            case 921120100:
            case 921160300:
            case 921160310:
            case 921160320:
            case 921160330:
            case 921160340:
            case 921160350:
            case 922010500:
            case 922010600:
            case 923040200:
            case 925100200:
            case 925100201:
            case 925100202:
            case 926100100:
            case 926110100:
            case 930000300:
            case 932000200:
                c.getSession().write(MaplePacketCreator.achievementRatio(25));
                break;
            case 921160400:
            case 926100200:
            case 926100201:
            case 926100202:
            case 926110200:
            case 926110201:
            case 926110202:
            case 930000400:
                c.getSession().write(MaplePacketCreator.achievementRatio(35));
                break;
            case 240080700:
            case 240080800:
            case 910340300:
            case 921120200:
            case 921160500:
            case 922010700:
            case 923040300:
            case 925100300:
            case 925100301:
            case 925100302:
            case 926100203:
            case 926110203:
            case 930000500:
            case 932000300:
                c.getSession().write(MaplePacketCreator.achievementRatio(50));
                break;
            case 910340400:
            case 921120300:
            case 921160600:
            case 922010800:
            case 923040400:
            case 925100400:
            case 926100300:
            case 926100301:
            case 926100302:
            case 926100303:
            case 926100304:
            case 926110300:
            case 926110301:
            case 926110302:
            case 926110303:
            case 926110304:
            case 930000600:
            case 932000400:
                c.getSession().write(MaplePacketCreator.achievementRatio(70));
                break;
            case 910340500:
            case 920010800:
            case 921120400:
            case 921160700:
            case 922010900:
            case 925100500:
            case 926100400:
            case 926100401:
            case 926110400:
            case 926110401:
            case 930000700:
                c.getSession().write(MaplePacketCreator.achievementRatio(85));
                break;
            case 920011000:
            case 920011100:
            case 920011200:
            case 920011300:
            case 921120500:
            case 921120600:
            case 922011000:
            case 922011100:
            case 925100600:
            case 926100500:
            case 926100600:
            case 926110500:
            case 926110600:
            case 930000800:
                c.getSession().write(MaplePacketCreator.achievementRatio(100));
        }
    }

    public static boolean 新职业天使的祝福(int sourceid) {
        boolean mm = false;
        switch (sourceid) {
            case 20041085:
            case 20041087:
            case 20041090:
            case 20041179:
            case 30021085:
            case 30021087:
            case 30021090:
            case 30021179:
            case 60001085:
            case 60001087:
            case 60001090:
            case 60001179:
            case 60011085:
            case 60011087:
            case 60011090:
            case 60011179:
                mm = true;
        }

        return mm;
    }

    public static boolean 新式召唤兽(int skillid) {
        switch (skillid) {
            case 80000052:
            case 80000053:
            case 80000054:
            case 80000086:
            case 80001262:
                return true;
        }
        return false;
    }

    public static boolean isAngel(int sourceid) {
        return (is新手职业(sourceid / 10000)) && ((新职业天使的祝福(sourceid)) || (sourceid % 10000 == 1085) || (sourceid % 10000 == 1087) || (sourceid % 10000 == 1090) || (sourceid % 10000 == 1179));
    }

    public static boolean isFishingMap(int mapid) {
        return (mapid == 749050500) || (mapid == 749050501) || (mapid == 749050502) || (mapid == 970020000) || (mapid == 970020005);
    }

    public static int getRewardPot(int itemid, int closeness) {
        switch (itemid) {
            case 2440000:
                switch (closeness / 10) {
                    case 0:
                    case 1:
                    case 2:
                        return 2028041 + closeness / 10;
                    case 3:
                    case 4:
                    case 5:
                        return 2028046 + closeness / 10;
                    case 6:
                    case 7:
                    case 8:
                        return 2028049 + closeness / 10;
                }
                return 2028057;
            case 2440001:
                switch (closeness / 10) {
                    case 0:
                    case 1:
                    case 2:
                        return 2028044 + closeness / 10;
                    case 3:
                    case 4:
                    case 5:
                        return 2028049 + closeness / 10;
                    case 6:
                    case 7:
                    case 8:
                        return 2028052 + closeness / 10;
                }
                return 2028060;
            case 2440002:
                return 2028069;
            case 2440003:
                return 2430278;
            case 2440004:
                return 2430381;
            case 2440005:
                return 2430393;
        }
        return 0;
    }

    public static boolean isEventMap(int mapid) {
        return ((mapid >= 109010000) && (mapid < 109050000)) || ((mapid > 109050001) && (mapid < 109090000)) || ((mapid >= 809040000) && (mapid <= 809040100));
    }

    public static boolean isMagicChargeSkill(int skillid) {
        switch (skillid) {
            case 2121001:
            case 2221001:
            case 2321001:
                return true;
        }
        return false;
    }

    public static boolean isTeamMap(int mapid) {
        return (mapid == 109080000) || (mapid == 109080001) || (mapid == 109080002) || (mapid == 109080003) || (mapid == 109080010) || (mapid == 109080011) || (mapid == 109080012) || (mapid == 109090300) || (mapid == 109090301) || (mapid == 109090302) || (mapid == 109090303) || (mapid == 109090304) || (mapid == 910040100) || (mapid == 960020100) || (mapid == 960020101) || (mapid == 960020102) || (mapid == 960020103) || (mapid == 960030100) || (mapid == 689000000) || (mapid == 689000010);
    }

    public static int getStatDice(int stat) {
        switch (stat) {
            case 2:
                return 30;
            case 3:
                return 20;
            case 4:
                return 15;
            case 5:
                return 20;
            case 6:
                return 30;
        }
        return 0;
    }

    public static boolean isLogItem(int itemId) {
        switch (itemId) {
            case 2040006:
            case 2040007:
            case 2040303:
            case 2040403:
            case 2040506:
            case 2040507:
            case 2040603:
            case 2040709:
            case 2040710:
            case 2040711:
            case 2040806:
            case 2040903:
            case 2041024:
            case 2041025:
            case 2043003:
            case 2043103:
            case 2043203:
            case 2043303:
            case 2043703:
            case 2043803:
            case 2044003:
            case 2044019:
            case 2044103:
            case 2044203:
            case 2044303:
            case 2044403:
            case 2044503:
            case 2044603:
            case 2044703:
            case 2044815:
            case 2044908:
            case 2049000:
            case 2049001:
            case 2049002:
            case 2340000:
            case 4000463:
                return true;
        }
        return false;
    }

    public static int getDiceStat(int buffid, int stat) {
        if ((buffid == stat) || (buffid % 10 == stat) || (buffid / 10 == stat)) {
            return getStatDice(stat);
        }
        if (buffid == stat * 100) {
            return getStatDice(stat) + 10;
        }
        return 0;
    }

    public static int getMPByJob(int job) {
        switch (job) {
            case 3100:
                return 90;
            case 3110:
                return 150;
            case 3111:
                return 300;
            case 3112:
                return 360;
        }
        return 30;
    }

    public static boolean isBOSS(int mobid) {
        switch (mobid) {
            case 2220000:
            case 6130101:
            case 6300005:
            case 8220007:
            case 8500001:
            case 8500002:
            case 8800000:
            case 8800001:
            case 8800002:
            case 8800100:
            case 8800101:
            case 8800102:
            case 8810000:
            case 8810001:
            case 8810002:
            case 8810003:
            case 8810004:
            case 8810005:
            case 8810006:
            case 8810007:
            case 8810008:
            case 8810009:
            case 8810100:
            case 8810101:
            case 8810102:
            case 8810103:
            case 8810104:
            case 8810105:
            case 8810106:
            case 8810107:
            case 8810108:
            case 8810109:
            case 8820000:
            case 8820002:
            case 8820003:
            case 8820004:
            case 8820005:
            case 8820006:
            case 8840000:
            case 8840006:
            case 8840010:
            case 8850000:
            case 8850001:
            case 8850002:
            case 8850003:
            case 8850004:
            case 8850011:
            case 8850012:
            case 8860000:
            case 9001053:
            case 9300214:
            case 9300303:
            case 9300304:
            case 9300513:
            case 9305133:
            case 9305233:
            case 9305333:
            case 9400900:
            case 9400901:
            case 9500180:
            case 9500181:
            case 9500331:
            case 9500362:
            case 9500408:
            case 9500412:
            case 9600102:
            case 9600103:
            case 9600104:
            case 9600135:
            case 9600136:
                return true;
        }

        return false;
    }

    public static boolean 创建BOSS(int mobid) {
        switch (mobid) {
            case 8820019:
            case 8820020:
            case 8820021:
            case 8820022:
            case 8820023:
            case 8840000:
            case 8840006:
            case 8840010:
            case 9500408:
            case 9500412:
                return true;
        }

        return false;
    }

    public static int 尖兵技能消耗能量的数量(int buffid) {
        int 数量 = 0;
        switch (buffid) {
            case 36001005:
                数量 = 0;
                break;
            case 36001002:
                数量 = 0;
                break;
            case 36101001:
                数量 = 0;
                break;
            case 36101002:
                数量 = 0;
                break;
            case 36111003:
            case 36111008:
                数量 = 0;
                break;
            case 36121003:
                数量 = 0;
        }

        return 数量;
    }

    public static boolean 夜光光明技能(int skillid) {
        return (skillid == 27001100) || (skillid == 27101100) || (skillid == 27101101) || (skillid == 27111100) || (skillid == 27111101) || (skillid == 27121100);
    }

    public static boolean is星火卷轴(int itemid) {
        return (itemid == 2613000) || (itemid == 2613001) || (itemid == 2612010);
    }

    public static boolean is宿命卷轴(int itemid) {
        switch (itemid) {
            case 2046173:
            case 2046577:
            case 2046578:
            case 2046579:
            case 2046580:
            case 2046763:
            case 2046764:
            case 2046765:
            case 2046766:
            case 2046913:
            case 2046914:
                return true;
        }

        return false;
    }
    public static boolean is极真装备(int itemid) {
        if (((itemid >= 1132164) && (itemid <= 1132178)) || ((itemid >= 1102471) && (itemid <= 1102485)) || ((itemid >= 1072732) && (itemid <= 1072747))) {
            return true;
        }

        return false;
    }

    public static boolean isKeyDownSkill(int skillid) {
        switch (skillid) {
            case 4221052:
            case 4341002:
            case 4341003:
            case 4341052:
            case 5081001:
            case 5101012:
            case 5300007:
            case 5301001:
            case 5801004:
            case 5901002:
            case 14111006:
            case 15101010:
            case 23121000:
            case 24121000:
            case 20031210:
            case 24121005:
            case 27101202:
            case 27111100:
            case 27120211:
            case 27121201:
            case 30021238:
            case 31001000:
            case 31101000:
            case 31111005:
            case 32121003:
            case 36101001:
            case 36121000:
            case 61111100:
            case 61111111:
            case 65121003:
            case 65121052:
                return true;
        }

        return false;
    }

    public static int 新职业副手装备(int jobid) {
        if (is尖兵(jobid)) {
            return 1353002 + (jobid - 3610);
        }
        if (is萝莉(jobid)) {
            return 1352602 + (jobid - 6510);
        }
        if (is夜光(jobid)) {
            return 1352402 + (jobid - 2710);
        }
        if (is狂龙(jobid)) {
            return 1352502 + (jobid - 6110);
        }
        if (is米哈尔(jobid)) {
            return 1098002 + (jobid - 5110);
        }
        if (is龙的传人(jobid)) {
            return 1352302 + (jobid - 570);
        }
        return 0;
    }

    public static boolean is夜光技能(int skill) {
        return (skill >= 27000000) && (skill <= 27300000);
    }

    public static int get职业超级技能攻击技能(int level, int jobid) {
        if (is尖兵(jobid)) {
            if (level >= 200) {
                return 36121052;
            }
            if (level >= 170) {
                return 36121053;
            }
        } else if (is萝莉(jobid)) {
            if (level >= 170) {
                return 65121052;
            }
        } else if (is夜光(jobid)) {
            if (level >= 170) {
                return 27121052;
            }
        } else if (is狂龙(jobid)) {
            if (level >= 170) {
                return 61121052;
            }
        } else if (is米哈尔(jobid)) {
            if (level >= 170) {
                return 51121052;
            }
        } else if (is暗影双刀(jobid)) {
            if (level >= 170) {
                return 4341052;
            }
        } else {
            if (is龙的传人(jobid)) {
                return 0;
            }
            if (is双弩精灵(jobid)) {
                if (level >= 170) {
                    return 23121052;
                }
            } else if (is幻影(jobid)) {
                if (level >= 170) {
                    return 24121052;
                }
            } else if (is恶魔猎手(jobid)) {
                if (level >= 170) {
                    return 31121052;
                }
            } else if (is恶魔复仇者(jobid)) {
                if (level >= 170) {
                    return 31221052;
                }
            } else if (is战神(jobid)) {
                if (level >= 170) {
                    return 21120052;
                }
            } else if (is龙神(jobid)) {
                if (level >= 170) {
                    return 0;
                }
            } else if (is魂骑士(jobid)) {
                if (level >= 170) {
                    return 11121055;
                }
            } else if (is风灵使者(jobid)) {
                if (level >= 170) {
                    return 13121052;
                }
            } else if (is火毒(jobid)) {
                if (level >= 170) {
                    return 2121052;
                }
            } else if (is冰雷(jobid)) {
                if (level >= 170) {
                    return 2221052;
                }
            } else if (is主教(jobid)) {
                if (level >= 170) {
                    return 2321052;
                }
            } else if (is隐士(jobid)) {
                if (level >= 170) {
                    return 4121052;
                }
            } else if (is侠盗(jobid)) {
                if (level >= 170) {
                    return 4221052;
                }
            } else if (is冲锋队长(jobid)) {
                if (level >= 170) {
                    return 5121052;
                }
            } else if (is奇袭者(jobid)) {
                if (level >= 170) {
                    return 15121054;
                }
            } else if (is英雄(jobid)) {
                if (level >= 170) {
                    return 1121052;
                }
            } else if (is圣骑士(jobid)) {
                if (level >= 170) {
                    return 1221052;
                }
            } else if (is黑骑士(jobid)) {
                if (level >= 170) {
                    return 1321052;
                }
            } else if (is神射手(jobid)) {
                if (level >= 170) {
                    return 3121052;
                }
            } else if (is箭神(jobid)) {
                if (level >= 170) {
                    return 3221052;
                }
            } else if (is船长(jobid)) {
                if (level >= 170) {
                    return 5221052;
                }
            } else if (is唤灵(jobid)) {
                if (level >= 170) {
                    return 32120052;
                }
            } else if (is机械师(jobid)) {
                if (level >= 170) {
                    return 35121052;
                }
            } else if (is火炮手(jobid)) {
                if (level >= 170) {
                    return 5321052;
                }
            } else if ((is弩骑(jobid))
                    && (level >= 170)) {
                return 33121052;
            }
        }
        return 0;
    }

    public static boolean 新式骑宠(int skillid) {
        switch (skillid) {
            case 20021161:
            case 30011109:
            case 35120000:
            case 80001166:
            case 80001173:
            case 80001174:
            case 80001175:
            case 80001183:
            case 80001184:
            case 80001185:
            case 80001186:
            case 80001187:
            case 80001188:
            case 80001189:
            case 80001190:
            case 80001191:
            case 80001192:
            case 80001193:
            case 80001194:
            case 80001195:
            case 80001196:
            case 80001198:
            case 80001199:
            case 80001208:
            case 80001220:
            case 80001221:
            case 80001222:
            case 80001223:
            case 80001224:
            case 80001228:
            case 80001229:
            case 80001230:
            case 80001237:
            case 80001238:
            case 80001239:
            case 80001240:
            case 80001241:
            case 80001243:
            case 80001244:
            case 80001245:
            case 80001246:
            case 80001247:
            case 80001260:
            case 80001261:
            case 80001290:
            case 80001292:
            case 80001295:
            case 80001330:
            case 80001335:
            case 80011000:
                return true;
        }

        return false;
    }
    public static boolean 机械师骑兽技能(int skillid) {
        switch (skillid) {            
            case 35001002:
                return true;
        }

        return false;
    }
    public static int 新式骑宠外形(int skillid) {
        switch (skillid) {
            case 20021161:
                return 1932087;
            case 80001173:
                return 1932123;
            case 80001174:
                return 1932124;
            case 80001175:
                return 1932125;
            case 80001183:
                return 1932126;
            case 80001184:
                return 1932127;
            case 80001185:
                return 1932128;
            case 80001186:
                return 1932129;
            case 80001187:
                return 1932130;
            case 80001188:
                return 1932131;
            case 80001189:
                return 1932132;
            case 80001190:
                return 1932133;
            case 80001191:
                return 1932134;
            case 80001192:
                return 1932135;
            case 80001193:
                return 1932136;
            case 80001194:
                return 1932137;
            case 80001195:
                return 1932138;
            case 80001196:
                return 1932139;
            case 80001198:
                return 1932140;
            case 80001199:
                return 1932141;
            case 80001208:
                return 1932142;
            case 80001220:
                return 1932143;
            case 80001221:
                return 1932144;
            case 80001222:
                return 1932145;
            case 80001223:
                return 1932146;
            case 80001224:
                return 1932147;
            case 80001228:
                return 1932149;
            case 80001229:
                return 1932150;
            case 80001230:
                return 1932151;
            case 80001241:
                return 1932152;
            case 80001237:
                return 1932153;
            case 80001240:
                return 1932154;
            case 80001238:
                return 1932155;
            case 80001243:
                return 1932156;
            case 80001244:
                return 1932157;
            case 80001245:
                return 1932158;
            case 80001246:
                return 1932159;
            case 80001247:
                return 1932161;
            case 80001258:
                return 1932162;
            case 80001260:
                return 1932163;
            case 80001261:
                return 1932164;
            case 80001239:
                return ServerProperties.get测试数据();
            case 80001166:
                return 1932163;
            case 80001330:
                return ServerProperties.get测试数据();
            case 80001335:
                return 1932166;
            case 35001002:
            case 35120000:
                return 1932016;
            case 30011109:
                return 1932051;
            case 30011159:
                return 1932085;
        }

        return 1932153;
    }

    public static int 固定时间BUFF(int buffid) {
        switch (buffid) {
            case 2120010:
            case 2220010:
            case 2320011:
            case 4341052:
                return 10000;
            case 15121005:
            case 32121010:
                return 200000;
            case 35001002:
            case 35120000:
                return 600000;
            case 32001003:
            case 32101002:
            case 32101003:
            case 32110000:
            case 32110007:
            case 32110008:
            case 32110009:
            case 32111012:
            case 32120000:
            case 32120001:
            case 32120013:
            case 32120014:
            case 32120015:
                return 200000;
            case 60001216:
            case 60001217:
                return 20000000;
            case 61101002:
            case 61110211:
            case 61120007:
            case 61121217:
                return 300000;
            case 11101022:
            case 11111022:
                return 600000;
            case 61111008:
            case 61120008:
                return 90000;
            case 2300009:
            case 27111004:
                return 20000000;
            case 100001263:
            case 100001264:
                return 1877717773;
            case 2121054:
            case 2221054:
            case 2321054:
            case 3101009:
            case 3111011:
            case 3211012:
            case 24111002:
            case 27110007:
            case 30010230:
                return 500645789;
            case 27100003:
                return 500119371;
            case 31011000:
            case 31201000:
            case 31211000:
            case 31221000:
            case 61121054:
                return 30000;
        }
        return 0;
    }

    public static boolean 魂骑士动作技能(int skillid) {
        return (skillid == 11111022) || (skillid == 11101022);
    }

    public static boolean 魂骑士攻击前置技能(int skillid) {
        return (skillid == 11111022) || (skillid == 11101022) || (skillid == 11121011) || (skillid == 11121012) || (skillid == 11121005);
    }

    public static boolean 魂骑士日月转轮(int skillid) {
        return (skillid == 11121011) || (skillid == 11121012) || (skillid == 11121005);
    }

    public static boolean 夜光模式技能(int skillid) {
        return (skillid == 20040216) || (skillid == 20040217) || (skillid == 20040219);
    }

    public static boolean is神之子技能(int skillid) {
        return (skillid >= 100000000) && (skillid <= 101130000);
    }

    public static boolean is林之灵技能(int skillid) {
        return (skillid >= 110000000) && (skillid <= 112130000);
    }

    public static boolean is超级技能(int job, int skillid) {
        if (job == 2218) {
            job = 2217;
        }
        return ((skillid <= job * 10000 + 51) && (skillid >= job * 10000 + 30)) || ((skillid <= job * 10000 + 1100) && (skillid >= job * 10000 + 1052));
    }

    public static int 机械师取消特殊技能返回值(int skill) {
        switch (skill) {
            case 35001002:
            case 35111004:
            case 35120000:
            case 35121005:
                return 16;
        }
        return 0;
    }

    public static boolean 有最大等级的特殊技能(int skill) {
        switch (skill) {
            case 101000101:
                return true;
        }
        return false;
    }

    public static boolean 取消特殊技能(int skill) {
        switch (skill) {
            case 13121054:
            case 35001002:
            case 35111004:
            case 35120000:
            case 35121005:
                return true;
        }
        return false;
    }

    public static int 取得抽奖物品() {
        int 概率 = Randomizer.nextInt(200);
        //  int reward;
        int reward;
        if (概率 >= 198) {
            reward = RandomRewards.get水晶八音盒();
        } else {
            //  int reward;
            if (概率 >= 195) {
                reward = RandomRewards.get水晶天平();
            } else {
                //   int reward;
                if (概率 >= 118) {
                    reward = 所有怪物掉落[Randomizer.nextInt(所有怪物掉落.length)];
                } else {
                    //  int reward;
                    if (概率 > 50) {
                        reward = 所有纪念币[Randomizer.nextInt(所有纪念币.length)];
                    } else {
                        reward = RandomRewards.get所有椅子();
                    }
                }
            }
        }
        if (reward == 0) {
            reward = RandomRewards.getEventReward();
        }
        return reward;
    }

    public static int 取得抽奖物品(int chan) {
        int 概率 = Randomizer.nextInt(200);
        //  int reward;
        int reward;
        if (概率 >= 198) {
            reward = RandomRewards.get水晶八音盒();
        } else {
            //  int reward;
            if (概率 >= 195) {
                reward = RandomRewards.get水晶天平();
            } else {
                //   int reward;
                if (概率 >= 118) {
                    reward = 所有怪物掉落[Randomizer.nextInt(所有怪物掉落.length)];
                } else {
                    //  int reward;
                    if (概率 > 50) {
                        reward = 所有纪念币[Randomizer.nextInt(所有纪念币.length)];
                    } else {
                        reward = RandomRewards.get所有椅子();
                    }
                }
            }
        }
        if (reward == 0) {
            reward = RandomRewards.getEventReward();
        }
        return reward;
    }

    public static int isBOSS掉落() {
        int 概率 = Randomizer.nextInt(500);
        int reward;
        //  int reward;
        if (概率 >= 499) {
            reward = RandomRewards.get水晶八音盒();
        } else {
            //  int reward;
            if (概率 >= 497) {
                reward = RandomRewards.get水晶天平();
            } else {
                //    int reward;
                if (概率 >= 495) {
                    reward = BOSS特殊掉落[Randomizer.nextInt(BOSS特殊掉落.length)];
                } else {
                    //   int reward;
                    if (概率 >= 110) {
                        reward = 所有怪物掉落[Randomizer.nextInt(所有怪物掉落.length)];
                    } else {
                        //  int reward;
                        if (概率 > 30) {
                            reward = 纪念币[Randomizer.nextInt(纪念币.length)];
                        } else {
                            reward = RandomRewards.getEventReward();
                        }
                    }
                }
            }
        }
        if (reward == 0) {
            RandomRewards.getEventReward();
        }
        return reward;
    }

    public static int 随机取得一种物品() {
        int 概率 = Randomizer.nextInt(100);
        int 物品;
        //  int 物品;
        if (概率 > 99) {
            物品 = 2510615 + Randomizer.nextInt(86);
        } else {
            //   int 物品;
            if (概率 > 95) {
                物品 = 2290656 + Randomizer.nextInt(360);
            } else {
                //   int 物品;
                if (概率 > 90) {
                    物品 = 2512294 + Randomizer.nextInt(10);
                } else {
                    //   int 物品;
                    if (概率 > 85) {
                        物品 = 2510000 + Randomizer.nextInt(473);
                    } else {
                        //   int 物品;
                        if (概率 > 75) {
                            物品 = 2511000 + Randomizer.nextInt(158);
                        } else {
                            //    int 物品;
                            if (概率 > 65) {
                                物品 = 2512000 + Randomizer.nextInt(293);
                            } else {
                                //     int 物品;
                                if (概率 > 50) {
                                    物品 = 2040000 + Randomizer.nextInt(138);
                                } else {
                                    //    int 物品;
                                    if (概率 > 48) {
                                        物品 = 2040200 + Randomizer.nextInt(36);
                                    } else {
                                        //      int 物品;
                                        if (概率 > 46) {
                                            物品 = 2040300 + Randomizer.nextInt(48);
                                        } else {
                                            //       int 物品;
                                            if (概率 > 44) {
                                                物品 = 2040400 + Randomizer.nextInt(36);
                                            } else {
                                                //     int 物品;
                                                if (概率 > 42) {
                                                    物品 = 2040500 + Randomizer.nextInt(41);
                                                } else {
                                                    //      int 物品;
                                                    if (概率 > 30) {
                                                        物品 = 2040600 + Randomizer.nextInt(36);
                                                    } else {
                                                        //       int 物品;
                                                        if (概率 > 38) {
                                                            物品 = 2040700 + Randomizer.nextInt(39);
                                                        } else {
                                                            //      int 物品;
                                                            if (概率 > 36) {
                                                                物品 = 2040800 + Randomizer.nextInt(75);
                                                            } else {
                                                                //       int 物品;
                                                                if (概率 > 34) {
                                                                    物品 = 2040900 + Randomizer.nextInt(42);
                                                                } else {
                                                                    //        int 物品;
                                                                    if (概率 > 32) {
                                                                        物品 = 2041000 + Randomizer.nextInt(91);
                                                                    } else {
                                                                        //        int 物品;
                                                                        if (概率 > 30) {
                                                                            物品 = 2041100 + Randomizer.nextInt(33);
                                                                        } else {
                                                                            //         int 物品;
                                                                            if (概率 > 28) {
                                                                                物品 = 2041200 + Randomizer.nextInt(14);
                                                                            } else {
                                                                                //         int 物品;
                                                                                if (概率 > 26) {
                                                                                    物品 = 2041300 + Randomizer.nextInt(19);
                                                                                } else {
                                                                                    //       int 物品;
                                                                                    if (概率 > 24) {
                                                                                        物品 = 2043000 + Randomizer.nextInt(25);
                                                                                    } else {
                                                                                        //   int 物品;
                                                                                        if (概率 > 22) {
                                                                                            物品 = 2043100 + Randomizer.nextInt(19);
                                                                                        } else {
                                                                                            //          int 物品;
                                                                                            if (概率 > 21) {
                                                                                                物品 = 2043200 + Randomizer.nextInt(19);
                                                                                            } else {
                                                                                                //           int 物品;
                                                                                                if (概率 > 20) {
                                                                                                    物品 = 2043300 + Randomizer.nextInt(16);
                                                                                                } else {
                                                                                                    //            int 物品;
                                                                                                    if (概率 > 19) {
                                                                                                        物品 = 2043400 + Randomizer.nextInt(4);
                                                                                                    } else {
                                                                                                        //          int 物品;
                                                                                                        if (概率 > 18) {
                                                                                                            物品 = 2043700 + Randomizer.nextInt(14);
                                                                                                        } else {
                                                                                                            //           int 物品;
                                                                                                            if (概率 > 17) {
                                                                                                                物品 = 2043800 + Randomizer.nextInt(7);
                                                                                                            } else {
                                                                                                                //             int 物品;
                                                                                                                if (概率 > 16) {
                                                                                                                    物品 = 2044000 + Randomizer.nextInt(15);
                                                                                                                } else {
                                                                                                                    //            int 物品;
                                                                                                                    if (概率 > 15) {
                                                                                                                        物品 = 2044100 + Randomizer.nextInt(14);
                                                                                                                    } else {
                                                                                                                        //              int 物品;
                                                                                                                        if (概率 > 14) {
                                                                                                                            物品 = 2044200 + Randomizer.nextInt(19);
                                                                                                                        } else {
                                                                                                                            //               int 物品;
                                                                                                                            if (概率 > 13) {
                                                                                                                                物品 = 2044300 + Randomizer.nextInt(19);
                                                                                                                            } else {
                                                                                                                                //           int 物品;
                                                                                                                                if (概率 > 12) {
                                                                                                                                    物品 = 2044400 + Randomizer.nextInt(19);
                                                                                                                                } else {
                                                                                                                                    //                int 物品;
                                                                                                                                    if (概率 > 11) {
                                                                                                                                        物品 = 2044500 + Randomizer.nextInt(7);
                                                                                                                                    } else {
                                                                                                                                        //                 int 物品;
                                                                                                                                        if (概率 > 10) {
                                                                                                                                            物品 = 2044600 + Randomizer.nextInt(7);
                                                                                                                                        } else {
                                                                                                                                            //                  int 物品;
                                                                                                                                            if (概率 > 9) {
                                                                                                                                                物品 = 2044700 + Randomizer.nextInt(7);
                                                                                                                                            } else {
                                                                                                                                                //                   int 物品;
                                                                                                                                                if (概率 > 8) {
                                                                                                                                                    物品 = 2044800 + Randomizer.nextInt(15);
                                                                                                                                                } else {
                                                                                                                                                    //                    int 物品;
                                                                                                                                                    if (概率 > 7) {
                                                                                                                                                        物品 = 2044900 + Randomizer.nextInt(8);
                                                                                                                                                    } else {
                                                                                                                                                        //                     int 物品;
                                                                                                                                                        if (概率 > 6) {
                                                                                                                                                            物品 = 2045200 + Randomizer.nextInt(8);
                                                                                                                                                        } else {
                                                                                                                                                            //                     int 物品;
                                                                                                                                                            if (概率 > 5) {
                                                                                                                                                                物品 = 2045300 + Randomizer.nextInt(8);
                                                                                                                                                            } else {
                                                                                                                                                                //               int 物品;
                                                                                                                                                                if (概率 > 4) {
                                                                                                                                                                    物品 = 2046253 + Randomizer.nextInt(23);
                                                                                                                                                                } else {
                                                                                                                                                                    //                   int 物品;
                                                                                                                                                                    if (概率 > 3) {
                                                                                                                                                                        物品 = 2046300 + Randomizer.nextInt(65);
                                                                                                                                                                    } else {
                                                                                                                                                                        //                    int 物品;
                                                                                                                                                                        if (概率 > 2) {
                                                                                                                                                                            物品 = 2049000 + Randomizer.nextInt(7);
                                                                                                                                                                        } else {
                                                                                                                                                                            //                     int 物品;
                                                                                                                                                                            if (概率 > 1) {
                                                                                                                                                                                物品 = 2049300 + Randomizer.nextInt(10);
                                                                                                                                                                            } else {
                                                                                                                                                                                物品 = 2045800 + Randomizer.nextInt(138);
                                                                                                                                                                            }
                                                                                                                                                                        }
                                                                                                                                                                    }
                                                                                                                                                                }
                                                                                                                                                            }
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        return 物品;
    }

    public static boolean 所有职业冒险岛勇士(int skill) {
        switch (skill) {
            case 1121000:
            case 1221000:
            case 1321000:
            case 2121000:
            case 2221000:
            case 2321000:
            case 3121000:
            case 3221000:
            case 4121000:
            case 4221000:
            case 4341000:
            case 5121000:
            case 5221000:
            case 5321005:
            case 5721000:
            case 5821000:
            case 5921000:
            case 11121000:
            case 13121000:
            case 15121000:
            case 21121000:
            case 22171000:
            case 23121005:
            case 24121008:
            case 27121009:
            case 31121004:
            case 31221008:
            case 32121007:
            case 33121007:
            case 35121007:
            case 36121008:
            case 51121005:
            case 61121014:
            case 65121009:
            case 100001268:
                return true;
        }
        return false;
    }

    public static boolean is恶魔复仇者超越技能(int skill) {
        if ((skill == 31011000) || ((skill >= 31010004) && (skill <= 31010007)) || (skill == 31201000) || ((skill >= 31201007) && (skill <= 31201010)) || (skill == 31211000) || ((skill >= 31211007) && (skill <= 31211010)) || (skill == 31221000) || ((skill >= 31221009) && (skill <= 31221012)) || (skill == 30010230)) {
            return true;
        }
        return false;
    }

    public static int is恶魔复仇者超越技能返回技能(int skill) {
        if ((skill == 31011000) || ((skill >= 31010004) && (skill <= 31010007))) {
            return 31011000;
        }
        if ((skill == 31201000) || ((skill >= 31201007) && (skill <= 31201010))) {
            return 31201000;
        }
        if ((skill == 31211000) || ((skill >= 31211007) && (skill <= 31211010))) {
            return 31211000;
        }
        if ((skill == 31221000) || ((skill >= 31221009) && (skill <= 31221012))) {
            return 31221000;
        }
        return 31011000;
    }

    public static boolean is恶魔复仇者超越技能_十字斩(int skill) {
        return (skill >= 31010004) && (skill <= 31010007);
    }

    public static boolean is恶魔复仇者超越技能_恶魔突袭(int skill) {
        return (skill >= 31010004) && (skill <= 31010007);
    }

    public static boolean is恶魔复仇者超越技能_月光斩(int skill) {
        return (skill >= 31211007) && (skill <= 31211010);
    }

    public static boolean is恶魔复仇者超越技能_处决(int skill) {
        return (skill >= 31221009) && (skill <= 31221012);
    }

    public static boolean is集合船员(int skill) {
        return (skill >= 31201007) && (skill <= 31201010);
    }

    public static int 循环召唤兽次数(int skill) {
        switch (skill) {
            case 5220019:
                return 2;
        }
        return 1;
    }

    public static int get幻影卡片审判效果类型() {
        int 概率 = Randomizer.nextInt(10);
        if (概率 >= 8) {
            return 5;
        }
        if (概率 >= 6) {
            return 4;
        }
        if (概率 >= 4) {
            return 3;
        }
        if (概率 >= 2) {
            return 2;
        }
        return 1;
    }

    public static int get美洲豹颜色() {
        return 1932015 + Randomizer.nextInt(6);
    }

    public static boolean is神圣最大魔法_最大生命(int job, int skillid) {
        return (is超级技能(job, skillid)) && ((skillid == job * 10000 + 36) || (skillid == job * 10000 + 37));
    }

    public static boolean is萝莉重生技能(int skillid) {
        return (skillid == 65001100) || (skillid == 65101100) || (skillid == 65101106) || (skillid == 65111100) || (skillid == 65111101) || (skillid == 65121100) || (skillid == 65121101);
    }

    public static boolean isKeyDown职业(int job) {
        switch (job) {
            case 312:
            case 322:
            case 412:
            case 422:
            case 434:
            case 1312:
            case 2412:
            case 3612:
            case 10112:
                return true;
        }

        return false;
    }

    public static boolean is神之子_阿尔法技能(int skill) {
        if ((skill == 101001200) || ((skill >= 101000200) && (skill <= 101000203)) || (skill == 101101200) || ((skill >= 101100200) && (skill <= 101100203)) || (skill == 101111200) || ((skill >= 101110200) && (skill <= 101110205)) || (skill == 101121200) || ((skill >= 101120200) && (skill <= 101120207))) {
            return true;
        }
        return false;
    }

    public static boolean is神之子_贝塔技能(int skill) {
        if ((skill == 101001100) || ((skill >= 101000100) && (skill <= 101000103)) || (skill == 101101100) || ((skill >= 101100100) && (skill <= 101100102)) || (skill == 101111100) || ((skill >= 101110100) && (skill <= 101110104)) || (skill == 101121100) || ((skill >= 101120100) && (skill <= 101120110))) {
            return true;
        }
        return false;
    }

    public static boolean 神之子_提速时刻(int skillid) {
        return (skillid == 100000277) || (skillid == 100000276);
    }

    public static byte get神之子_贝塔_点装位点反馈(int pos) {
        byte ms = 0;
        switch (pos) {
            case 101:
                ms = 101;
                break;
            case 106:
                ms = 108;
                break;
            case 109:
                ms = 107;
                break;
            case 104:
                ms = 109;
                break;
            case 105:
                ms = 105;
                break;
            case 108:
                ms = 106;
                break;
            case 107:
                ms = 111;
                break;
            case 110:
                ms = 112;
                break;
            case 111:
                ms = 113;
                break;
            case 112:
                ms = 115;
                break;
            case 100:
                ms = 103;
                break;
            case 103:
                ms = 104;
                break;
            case 102:
                ms = 102;
        }

        return ms;
    }

    public static boolean is神之子_点装位点(int pos) {
        byte ms = 0;
        switch (pos) {
            case 101:
            case 102:
            case 103:
            case 104:
            case 105:
            case 106:
            case 107:
            case 108:
            case 109:
            case 111:
            case 112:
            case 113:
            case 115:
                return true;
            case 110:
            case 114:
        }
        return false;
    }

    public static boolean is神之子_贝塔_武器(int itemid) {
        return (itemid >= 1562000) && (itemid <= 1562007);
    }

    public static boolean is神之子_阿尔法_武器(int itemid) {
        return (itemid >= 1572000) && (itemid <= 1572007);
    }

    public static int is神之子_武器_潜能1(int 类型) {
        int m = 10041;
        switch (类型) {
            case 2:
                m = 30001;
                break;
            case 3:
                m = 30041;
                break;
            case 4:
                m = 40001;
                break;
            case 5:
                m = 40041;
                break;
            case 6:
                m = 30602;
                break;
            case 7:
                m = 40601;
        }

        return m;
    }

    public static int is神之子_武器_潜能2(int 类型) {
        int m = 32052;
        switch (类型) {
            case 2:
                m = 40011;
                break;
            case 3:
                m = 40051;
                break;
            case 4:
                m = 42011;
                break;
            case 5:
                m = 42051;
                break;
            case 6:
                m = 42052;
                break;
            case 7:
                m = 42095;
        }

        return m;
    }

    public static int is神之子_武器_潜能3(int 类型) {
        int m = 30070;
        switch (类型) {
            case 2:
                m = 32070;
                break;
            case 3:
                m = 32071;
                break;
            case 4:
                m = 40070;
                break;
            case 5:
                m = 42070;
                break;
            case 6:
                m = 42071;
                break;
            case 7:
                m = 60001;
        }

        return m;
    }

    public static int is神之子_武器_需要WP(int 类型) {
        int m = 100000;
        switch (类型) {
            case 2:
                m = 1000000;
                break;
            case 3:
                m = 5000000;
                break;
            case 4:
                m = 1200000;
                break;
            case 5:
                m = 20000000;
                break;
            case 6:
                m = 35000000;
                break;
            case 7:
                m = 55555555;
        }

        return m;
    }
    
    public static int getSkillLevel(final int level) {
        if (level >= 70 && level < 120) {
            return 2;
        } else if (level >= 120 && level < 200) {
            return 3;
        } else if (level == 200) {
            return 4;
        }
        return 1;
    }
    
}

/* Location:           C:\Users\文炳\Desktop\CXFBY\114Maplewing.jar
 * Qualified Name:     constants.GameConstants
 * JD-Core Version:    0.6.2
 */